local HTHICK = 1/16 -- half pane thickness lzr_panes = {} function lzr_panes.register_pane(basename, def) local groups if def.groups then groups = table.copy(def.groups) else groups = {} end groups.pane = 1 groups.laser_block = 1 groups.rotatable = 3 lzr_laser.register_element(basename .. "_flat", { description = def.description, drawtype = "mesh", paramtype = "light", is_ground_content = false, sunlight_propagates = true, inventory_image = def.inventory_image, wield_image = def.wield_image, paramtype2 = "facedir", mesh_off = "lzr_panes_pane_on.obj", mesh_on = "lzr_panes_pane_on.obj", tiles_off = { { name = def.textures[3], backface_culling = true }, { name = def.textures[2], backface_culling = true }, { name = def.textures[1], backface_culling = true }, "blank.png", -- no laser }, tiles_on = { { name = def.textures[3], backface_culling = true }, -- top+bottom sides { name = def.textures[2], backface_culling = true }, -- left+right sides { name = def.textures[1], backface_culling = true }, -- front+back lzr_laser.LASER_TILE, }, light_source_on = lzr_globals.LASER_GLOW, groups = groups, sounds = def.sounds, use_texture_alpha = "blend", selection_box = { type = "fixed", fixed = {{-1/2, -1/2, -HTHICK, 1/2, 1/2, HTHICK}}, }, collision_box = { type = "fixed", fixed = {{-1/2, -1/2, -HTHICK, 1/2, 1/2, HTHICK}}, }, }, { group = def.element_group } ) end