Files
factorio-scenario-ExpCluster/docs/core/Gui.html
Cooldude2606 cf1515c1c8 Updated Tasks
2019-10-11 23:25:04 +01:00

10996 lines
276 KiB
HTML

<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gui core</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../spectre.min.css" type="text/css" />
<link rel="stylesheet" href="../spectre-icons.min.css" type="text/css" />
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>
<div class="container grid-1280">
<div class="columns">
<!-- sidebar start -->
<div id="sidebar" class="column col-3 col-sm-12">
<div class="sidebar-custom">
<div class="project-infobox">
<!-- project title -->
<a href="../index.html"><h1>ExpGaming Scenario</h1></a>
<!-- project description -->
<p class="project-desc">Explosive Gaming's server scenario for 0.17</p>
<!-- project full description -->
</div>
<!-- sidebar navigation -->
<!-- list of items in a module -->
<ul class="nav nav-module-contents">
<li class="nav-item">
<h2>Sections</h2>
<ul class="nav">
<li class="nav-item"><a href="#Dependencies"><span class="fragment-hashtag">#</span> Dependencies</a></li>
<li class="nav-item"><a href="#Center_Guis"><span class="fragment-hashtag">#</span> Center Guis </a></li>
<li class="nav-item"><a href="#Left_Guis"><span class="fragment-hashtag">#</span> Left Guis </a></li>
<li class="nav-item"><a href="#Popups"><span class="fragment-hashtag">#</span> Popups </a></li>
<li class="nav-item"><a href="#Toolbar"><span class="fragment-hashtag">#</span> Toolbar </a></li>
<li class="nav-item"><a href="#Core"><span class="fragment-hashtag">#</span> Core </a></li>
<li class="nav-item"><a href="#Buttons"><span class="fragment-hashtag">#</span> Buttons </a></li>
<li class="nav-item"><a href="#Checkboxs"><span class="fragment-hashtag">#</span> Checkboxs </a></li>
<li class="nav-item"><a href="#Dropdowns"><span class="fragment-hashtag">#</span> Dropdowns </a></li>
<li class="nav-item"><a href="#Elem_Buttons"><span class="fragment-hashtag">#</span> Elem Buttons </a></li>
<li class="nav-item"><a href="#Progress_Bars"><span class="fragment-hashtag">#</span> Progress Bars </a></li>
<li class="nav-item"><a href="#Sliders"><span class="fragment-hashtag">#</span> Sliders </a></li>
<li class="nav-item"><a href="#Text"><span class="fragment-hashtag">#</span> Text </a></li>
<li class="nav-item"><a href="#Instances"><span class="fragment-hashtag">#</span> Instances </a></li>
<li class="nav-item"><a href="#Prototype"><span class="fragment-hashtag">#</span> Prototype </a></li>
<li class="nav-item"><a href="#Test"><span class="fragment-hashtag">#</span> Test </a></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Core</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../core/Commands.html"><span class="module-name-item">Commands</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../core/Common-Library.html"><span class="module-name-item">Common-Library</span></a></div></li>
<li class="nav-item active"><div class="nav-item-block-active block"><a href="../core/Gui.html"><span class="module-name-item">Gui</span></a><i class="icon icon-arrow-left icon-arrow-left-custom"></i></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../core/Permissions-Groups.html"><span class="module-name-item">Permissions-Groups</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../core/Roles.html"><span class="module-name-item">Roles</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../core/Store.html"><span class="module-name-item">Store</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../core/Sudo.html"><span class="module-name-item">Sudo</span></a></div></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Control</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../control/Jail.html"><span class="module-name-item">Jail</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../control/Production.html"><span class="module-name-item">Production</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../control/Reports.html"><span class="module-name-item">Reports</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../control/Rockets.html"><span class="module-name-item">Rockets</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../control/Tasks.html"><span class="module-name-item">Tasks</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../control/Warnings.html"><span class="module-name-item">Warnings</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../control/Warps.html"><span class="module-name-item">Warps</span></a></div></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Addons</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Advanced-Start.html"><span class="module-name-item">Advanced-Start</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Chat-Popups.html"><span class="module-name-item">Chat-Popups</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Chat-Reply.html"><span class="module-name-item">Chat-Reply</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Compilatron.html"><span class="module-name-item">Compilatron</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Damage-Popups.html"><span class="module-name-item">Damage-Popups</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Death-Logger.html"><span class="module-name-item">Death-Logger</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Discord-Alerts.html"><span class="module-name-item">Discord-Alerts</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Pollution-Grading.html"><span class="module-name-item">Pollution-Grading</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Player-Colours.html"><span class="module-name-item">Player-Colours</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Scorched-Earth.html"><span class="module-name-item">Scorched-Earth</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../addons/Spawn-Area.html"><span class="module-name-item">Spawn-Area</span></a></div></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Guis</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../guis/Player-List.html"><span class="module-name-item">Player-List</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../guis/Rocket-Info.html"><span class="module-name-item">Rocket-Info</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../guis/Science-Info.html"><span class="module-name-item">Science-Info</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../guis/Task-List.html"><span class="module-name-item">Task-List</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../guis/Warps-List.html"><span class="module-name-item">Warps-List</span></a></div></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Commands</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Admin-Chat.html"><span class="module-name-item">Admin-Chat</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Bonus.html"><span class="module-name-item">Bonus</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Cheat-Mode.html"><span class="module-name-item">Cheat-Mode</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Clear-Inventory.html"><span class="module-name-item">Clear-Inventory</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Debug.html"><span class="module-name-item">Debug</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Find.html"><span class="module-name-item">Find</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Help.html"><span class="module-name-item">Help</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Home.html"><span class="module-name-item">Home</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Interface.html"><span class="module-name-item">Interface</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Jail.html"><span class="module-name-item">Jail</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Kill.html"><span class="module-name-item">Kill</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Me.html"><span class="module-name-item">Me</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Rainbow.html"><span class="module-name-item">Rainbow</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Repair.html"><span class="module-name-item">Repair</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Reports.html"><span class="module-name-item">Reports</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Roles.html"><span class="module-name-item">Roles</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Spawn.html"><span class="module-name-item">Spawn</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Tag.html"><span class="module-name-item">Tag</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Teleport.html"><span class="module-name-item">Teleport</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../commands/Warnings.html"><span class="module-name-item">Warnings</span></a></div></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Configs</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/File-Loader.html"><span class="module-name-item">File-Loader</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Player-List.html"><span class="module-name-item">Player-List</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Advanced-Start.html"><span class="module-name-item">Advanced-Start</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Bonuses.html"><span class="module-name-item">Bonuses</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Chat-Reply.html"><span class="module-name-item">Chat-Reply</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Compilatron.html"><span class="module-name-item">Compilatron</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Death-Logger.html"><span class="module-name-item">Death-Logger</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Discord-Alerts.html"><span class="module-name-item">Discord-Alerts</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Commands-Auth-Admin.html"><span class="module-name-item">Commands-Auth-Admin</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Commands-Auth-Roles.html"><span class="module-name-item">Commands-Auth-Roles</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Commands-Auth-Runtime-Disable.html"><span class="module-name-item">Commands-Auth-Runtime-Disable</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Commands-Parse.html"><span class="module-name-item">Commands-Parse</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Commands-Parse-Roles.html"><span class="module-name-item">Commands-Parse-Roles</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Permission-Groups.html"><span class="module-name-item">Permission-Groups</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Pollution-Grading.html"><span class="module-name-item">Pollution-Grading</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Popup-Messages.html"><span class="module-name-item">Popup-Messages</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Preset-Player-Colours.html"><span class="module-name-item">Preset-Player-Colours</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Repair.html"><span class="module-name-item">Repair</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Rockets.html"><span class="module-name-item">Rockets</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Roles.html"><span class="module-name-item">Roles</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Science.html"><span class="module-name-item">Science</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Scorched-Earth.html"><span class="module-name-item">Scorched-Earth</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Spawn-Area.html"><span class="module-name-item">Spawn-Area</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Tasks.html"><span class="module-name-item">Tasks</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Warnings.html"><span class="module-name-item">Warnings</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../configs/Warps.html"><span class="module-name-item">Warps</span></a></div></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Modules</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/control.html"><span class="module-name-item">control</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.alien_evolution_progress.html"><span class="module-name-item">utils.alien_evolution_progress</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.core.html"><span class="module-name-item">utils.core</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.debug.html"><span class="module-name-item">utils.debug</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.dump_env.html"><span class="module-name-item">utils.dump_env</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.event.html"><span class="module-name-item">utils.event</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.event_core.html"><span class="module-name-item">utils.event_core</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.math.html"><span class="module-name-item">utils.math</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.recipe_locker.html"><span class="module-name-item">utils.recipe_locker</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.state_machine.html"><span class="module-name-item">utils.state_machine</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.table.html"><span class="module-name-item">utils.table</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.task.html"><span class="module-name-item">utils.task</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../modules/utils.timestamp.html"><span class="module-name-item">utils.timestamp</span></a></div></li>
</ul>
</li>
</ul>
<ul class="nav nav-modules">
<li class="nav-item">
<h2>Topics</h2>
<ul class="nav">
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../topics/readme.md.html"><span class="module-name-item">readme.md</span></a></div></li>
<li class="nav-item"><div class="nav-item-block-inactive block"><a href="../topics/license.html"><span class="module-name-item">license</span></a></div></li>
</ul>
</li>
</ul>
</div>
<div class="up-to-top">
<!-- list of items in a module -->
<ul class="nav nav-module-contents">
<li class="nav-item">
<h4>Jump to Section</h4>
<ul class="nav">
<li class="nav-item"><a href="#Dependencies"><span class="fragment-hashtag">#</span> Dependencies</a></li>
<li class="nav-item"><a href="#Center_Guis"><span class="fragment-hashtag">#</span> Center Guis </a></li>
<li class="nav-item"><a href="#Left_Guis"><span class="fragment-hashtag">#</span> Left Guis </a></li>
<li class="nav-item"><a href="#Popups"><span class="fragment-hashtag">#</span> Popups </a></li>
<li class="nav-item"><a href="#Toolbar"><span class="fragment-hashtag">#</span> Toolbar </a></li>
<li class="nav-item"><a href="#Core"><span class="fragment-hashtag">#</span> Core </a></li>
<li class="nav-item"><a href="#Buttons"><span class="fragment-hashtag">#</span> Buttons </a></li>
<li class="nav-item"><a href="#Checkboxs"><span class="fragment-hashtag">#</span> Checkboxs </a></li>
<li class="nav-item"><a href="#Dropdowns"><span class="fragment-hashtag">#</span> Dropdowns </a></li>
<li class="nav-item"><a href="#Elem_Buttons"><span class="fragment-hashtag">#</span> Elem Buttons </a></li>
<li class="nav-item"><a href="#Progress_Bars"><span class="fragment-hashtag">#</span> Progress Bars </a></li>
<li class="nav-item"><a href="#Sliders"><span class="fragment-hashtag">#</span> Sliders </a></li>
<li class="nav-item"><a href="#Text"><span class="fragment-hashtag">#</span> Text </a></li>
<li class="nav-item"><a href="#Instances"><span class="fragment-hashtag">#</span> Instances </a></li>
<li class="nav-item"><a href="#Prototype"><span class="fragment-hashtag">#</span> Prototype </a></li>
<li class="nav-item"><a href="#Test"><span class="fragment-hashtag">#</span> Test </a></li>
</ul>
</li>
</ul>
<a href="#">Top <i class="icon icon-upward"></i></a>
</div>
</div>
<!-- sidebar end -->
<!-- content body start -->
<div class="column col-9 col-sm-12">
<!-- module list on the main page start -->
<!-- module list on the main page end -->
<!-- module contents -->
<!-- module content header start -->
<h2><span class="body-module-name"><strong><em>Gui</em></strong></span> core</h2>
<p>Core Module - Gui
- This file is used to require all the different elements of the gui module
- each module has an outline here but for more details see their separate files in ./gui
- please read the files for more documentation that cant be shown here
- please note there is a rework planned but not started</p>
<p></p>
<!-- module info start -->
<!-- module info end -->
<!-- module usage start -->
<!-- module usage end -->
<!-- module content header end -->
<!-- module section list start -->
<table class="section-content-list">
<thead>
<h3><a href="#Dependencies">Dependencies</a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.instances">expcore.gui.instances</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.buttons">expcore.gui.elements.buttons</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.checkbox">expcore.gui.elements.checkbox</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.dropdown">expcore.gui.elements.dropdown</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.slider">expcore.gui.elements.slider</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.text">expcore.gui.elements.text</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.elem-button">expcore.gui.elements.elem-button</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.progress-bar">expcore.gui.elements.progress-bar</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.concepts.toolbar">expcore.gui.concepts.toolbar</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.concepts.left">expcore.gui.concepts.left</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.concepts.center">expcore.gui.concepts.center</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.concepts.popups">expcore.gui.concepts.popups</a></td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Center_Guis">Center Guis </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.concepts.toolbar">expcore.gui.concepts.toolbar</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames.get_flow">CenterFrames.get_flow(player)</a></td>
<td class="summary">Gets the center flow for a player</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames.clear_flow">CenterFrames.clear_flow(player)</a></td>
<td class="summary">Clears the center flow for a player</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames.draw_frame">CenterFrames.draw_frame(player, name)</a></td>
<td class="summary">Draws the center frame for a player, if already open then will do nothing</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames.redraw_frame">CenterFrames.redraw_frame(player, name)</a></td>
<td class="summary">Draws the center frame for a player, if already open then will destroy it and redraw</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames.toggle_frame">CenterFrames.toggle_frame(player, name[, state])</a></td>
<td class="summary">Toggles if the frame is currently open or not, will open if closed and close if open</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames.new_frame">CenterFrames.new_frame(permission_name)</a></td>
<td class="summary">Creates a new center frame define</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames._prototype:set_auto_focus">CenterFrames._prototype:set_auto_focus([state=true])</a></td>
<td class="summary">Sets the frame to be the current active gui when opened and closes all other frames</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames._prototype:draw_frame">CenterFrames._prototype:draw_frame(player)</a></td>
<td class="summary">Draws this frame to the player, if already open does nothing (will call on_draw to draw to the frame)</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames._prototype:redraw_frame">CenterFrames._prototype:redraw_frame(player)</a></td>
<td class="summary">Draws this frame to the player, if already open it will remove it and redraw it (will call on_draw to draw to the frame)</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames._prototype:toggle_frame">CenterFrames._prototype:toggle_frame(player)</a></td>
<td class="summary">Toggles if the frame is open, if open it will close it and if closed it will open it</td>
</tr>
<tr>
<td class="name"><a href="#CenterFrames._prototype:event_handler">CenterFrames._prototype:event_handler([action=update])</a></td>
<td class="summary">Creates an event handler that will trigger one of its functions, use with Event.add</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Left_Guis">Left Guis </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.concepts.toolbar">expcore.gui.concepts.toolbar</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.buttons">expcore.gui.elements.buttons</a></td>
</tr>
<tr>
<td class="name"><a href="#mod-gui">mod-gui</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.event">utils.event</a></td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames.get_flow">LeftFrames.get_flow(player)</a></td>
<td class="summary">Gets the left frame flow for a player</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames.get_frame">LeftFrames.get_frame(name, player)</a></td>
<td class="summary">Gets one frame from the left flow by its name</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames.get_open">LeftFrames.get_open(player)</a></td>
<td class="summary">Gets all open frames for a player, if non are open it will remove the close all button</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames.toggle_frame">LeftFrames.toggle_frame(name, player[, state])</a></td>
<td class="summary">Toggles the visibility of a left frame, or sets its visibility state</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames.new_frame">LeftFrames.new_frame(permission_name)</a></td>
<td class="summary">Creates a new left frame define</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:set_open_by_default">LeftFrames._prototype:set_open_by_default([state=true])</a></td>
<td class="summary">Sets if the frame is visible when a player joins, can also be a function to return a boolean</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:set_direction">LeftFrames._prototype:set_direction(direction)</a></td>
<td class="summary">Sets the direction of the frame, either vertical or horizontal</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:_internal_draw">LeftFrames._prototype:_internal_draw(player)</a></td>
<td class="summary">Creates the gui for the first time, used internally</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:get_frame">LeftFrames._prototype:get_frame(player)</a></td>
<td class="summary">Gets the frame for this define from the left frame flow</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:is_open">LeftFrames._prototype:is_open(player)</a></td>
<td class="summary">Returns if the player currently has this define visible</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:toggle">LeftFrames._prototype:toggle(player)</a></td>
<td class="summary">Toggles the visibility of the left frame</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:update">LeftFrames._prototype:update(player)</a></td>
<td class="summary">Updates the contents of the left frame, first tries update callback, other wise will clear and redraw</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:update_all">LeftFrames._prototype:update_all([update_offline=false])</a></td>
<td class="summary">Updates the frame for all players, see update</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:redraw">LeftFrames._prototype:redraw(player)</a></td>
<td class="summary">Redraws the frame by calling on_draw, will always clear the frame</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:redraw_all">LeftFrames._prototype:redraw_all([update_offline=false])</a></td>
<td class="summary">Redraws the frame for all players, see redraw</td>
</tr>
<tr>
<td class="name"><a href="#LeftFrames._prototype:event_handler">LeftFrames._prototype:event_handler([action=update])</a></td>
<td class="summary">Creates an event handler that will trigger one of its functions, use with Event.add</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Popups">Popups </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.event">utils.event</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.progress-bar">expcore.gui.elements.progress-bar</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.buttons">expcore.gui.elements.buttons</a></td>
</tr>
<tr>
<td class="name"><a href="#mod-gui">mod-gui</a></td>
</tr>
<tr>
<td class="name"><a href="#resources.color_presets">resources.color_presets</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.global">utils.global</a></td>
</tr>
<tr>
<td class="name"><a href="#PopupFrames.get_flow">PopupFrames.get_flow(player)</a></td>
<td class="summary">Gets the left flow that contains the popup frames</td>
</tr>
<tr>
<td class="name"><a href="#PopupFrames.open">PopupFrames.open(define_name, player[, open_time], ...)</a></td>
<td class="summary">Opens a popup for the player, can give the amount of time it is open as well as params for the draw function</td>
</tr>
<tr>
<td class="name"><a href="#PopupFrames.close_progress">PopupFrames.close_progress</a></td>
<td class="summary">Progress bar which when depleted will close the popup frame</td>
</tr>
<tr>
<td class="name"><a href="#PopupFrames.close_button">PopupFrames.close_button</a></td>
<td class="summary">A button which can be used to close the gui before the timer runs out</td>
</tr>
<tr>
<td class="name"><a href="#PopupFrames.new_popup">PopupFrames.new_popup([name])</a></td>
<td class="summary">Creates a new popup frame define</td>
</tr>
<tr>
<td class="name"><a href="#PopupFrames._prototype:set_default_open_time">PopupFrames._prototype:set_default_open_time(amount)</a></td>
<td class="summary">Sets the default open time for the popup, will be used if non is provided with open</td>
</tr>
<tr>
<td class="name"><a href="#PopupFrames._prototype:open">PopupFrames._prototype:open(player[, open_time], ...)</a></td>
<td class="summary">Opens this define for a player, can be given open time and any other params for the draw function</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Toolbar">Toolbar </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.elements.buttons">expcore.gui.elements.buttons</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.roles">expcore.roles</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.event">utils.event</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#mod-gui">mod-gui</a></td>
</tr>
<tr>
<td class="name"><a href="#Toolbar.new_button">Toolbar.new_button([name])</a></td>
<td class="summary">Adds a new button to the toolbar</td>
</tr>
<tr>
<td class="name"><a href="#Toolbar.add_button">Toolbar.add_button(button)</a></td>
<td class="summary">Adds an existing buttton to the toolbar</td>
</tr>
<tr>
<td class="name"><a href="#Toolbar.update">Toolbar.update(player)</a></td>
<td class="summary">Updates the player's toolbar with an new buttons or expected change in auth return</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Core">Core </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#utils.gui">utils.gui</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#new_define">new_define(prototype[, debug_name])</a></td>
<td class="summary">Used to create new element defines from a class prototype, please use the own given by the class</td>
</tr>
<tr>
<td class="name"><a href="#get_define">get_define(name[, internal])</a></td>
<td class="summary">Gets an element define give the uid, debug name or a copy of the element define</td>
</tr>
<tr>
<td class="name"><a href="#categorize_by_player">categorize_by_player(element)</a></td>
<td class="summary">A categorize function to be used with add_store, each player has their own value</td>
</tr>
<tr>
<td class="name"><a href="#categorize_by_force">categorize_by_force(element)</a></td>
<td class="summary">A categorize function to be used with add_store, each force has its own value</td>
</tr>
<tr>
<td class="name"><a href="#categorize_by_surface">categorize_by_surface(element)</a></td>
<td class="summary">A categorize function to be used with add_store, each surface has its own value</td>
</tr>
<tr>
<td class="name"><a href="#draw">draw(name, element)</a></td>
<td class="summary">Draws a copy of the element define to the parent element, see draw_to</td>
</tr>
<tr>
<td class="name"><a href="#toggle_enabled">toggle_enabled(element)</a></td>
<td class="summary">Will toggle the enabled state of an element</td>
</tr>
<tr>
<td class="name"><a href="#toggle_visible">toggle_visible(element)</a></td>
<td class="summary">Will toggle the visiblity of an element</td>
</tr>
<tr>
<td class="name"><a href="#set_padding">set_padding(element[, up=0][, down=0][, left=0][, right=0])</a></td>
<td class="summary">Sets the padding for a gui element</td>
</tr>
<tr>
<td class="name"><a href="#set_padding_style">set_padding_style(style[, up=0][, down=0][, left=0][, right=0])</a></td>
<td class="summary">Sets the padding for a gui style</td>
</tr>
<tr>
<td class="name"><a href="#create_alignment">create_alignment(element[, name][, horizontal_align='right'][, vertical_align='center'])</a></td>
<td class="summary">Allows the creation of an alignment flow to place elements into</td>
</tr>
<tr>
<td class="name"><a href="#destroy_if_valid">destroy_if_valid(element)</a></td>
<td class="summary">Destroies an element but tests for it being present and valid first</td>
</tr>
<tr>
<td class="name"><a href="#create_scroll_table">create_scroll_table(element, table_size, maximal_height[, name='scroll'])</a></td>
<td class="summary">Creates a scroll area with a table inside, table can be any size</td>
</tr>
<tr>
<td class="name"><a href="#create_header">create_header(element, caption[, tooltip][, right_align][, name='header'])</a></td>
<td class="summary">Creates a header section with a label and button area</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Buttons">Buttons </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#mod-gui">mod-gui</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#Button.new_button">Button.new_button([name])</a></td>
<td class="summary">Creates a new button element define</td>
</tr>
<tr>
<td class="name"><a href="#Button._prototype:set_sprites">Button._prototype:set_sprites(sprite[, hovered_sprite][, clicked_sprite])</a></td>
<td class="summary">Adds sprites to a button making it a sprite button</td>
</tr>
<tr>
<td class="name"><a href="#Button._prototype:set_click_filter">Button._prototype:set_click_filter(filter[, ...])</a></td>
<td class="summary">Adds a click / mouse button filter to the button</td>
</tr>
<tr>
<td class="name"><a href="#Button._prototype:set_key_filter">Button._prototype:set_key_filter(filter[, ...])</a></td>
<td class="summary">Adds a control key filter to the button</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Checkboxs">Checkboxs </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.store">expcore.store</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#Checkbox.new_checkbox">Checkbox.new_checkbox([name])</a></td>
<td class="summary">Creates a new checkbox element define</td>
</tr>
<tr>
<td class="name"><a href="#Checkbox.new_radiobutton">Checkbox.new_radiobutton([name])</a></td>
<td class="summary">Creates a new radiobutton element define, has all functions checkbox has</td>
</tr>
<tr>
<td class="name"><a href="#Checkbox._prototype_radiobutton:add_as_option">Checkbox._prototype_radiobutton:add_as_option(option_set, option_name)</a></td>
<td class="summary">Adds this radiobutton to be an option in the given option set (only one can be true at a time)</td>
</tr>
<tr>
<td class="name"><a href="#Checkbox._prototype_radiobutton:get_store">Checkbox._prototype_radiobutton:get_store(category, internal)</a></td>
<td class="summary">Gets the stored value of the radiobutton or the option set if present</td>
</tr>
<tr>
<td class="name"><a href="#Checkbox._prototype_radiobutton:set_store">Checkbox._prototype_radiobutton:set_store(category, value, internal)</a></td>
<td class="summary">Sets the stored value of the radiobutton or the option set if present</td>
</tr>
<tr>
<td class="name"><a href="#Checkbox.new_option_set">Checkbox.new_option_set(name, callback, categorize)</a></td>
<td class="summary">Registers a new option set that can be linked to radiobuttons (only one can be true at a time)</td>
</tr>
<tr>
<td class="name"><a href="#Checkbox.draw_option_set">Checkbox.draw_option_set(name, element)</a></td>
<td class="summary">Draws all radiobuttons that are part of an option set at once (Gui.draw will not work)</td>
</tr>
<tr>
<td class="name"><a href="#Checkbox.reset_radiobuttons">Checkbox.reset_radiobuttons(element[, exclude][, recursive=false])</a></td>
<td class="summary">Sets all radiobutton in a element to false (unless excluded) and can act recursively</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Dropdowns">Dropdowns </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#Dropdown.new_dropdown">Dropdown.new_dropdown([name])</a></td>
<td class="summary">Creates a new dropdown element define</td>
</tr>
<tr>
<td class="name"><a href="#Dropdown.new_list_box">Dropdown.new_list_box([name])</a></td>
<td class="summary">Creates a new list box element define</td>
</tr>
<tr>
<td class="name"><a href="#Dropdown._prototype:new_static_options">Dropdown._prototype:new_static_options(options[, ...], the)</a></td>
<td class="summary">Adds new static options to the dropdown which will trigger the general callback</td>
</tr>
<tr>
<td class="name"><a href="#Dropdown._prototype:new_dynamic_options">Dropdown._prototype:new_dynamic_options(callback)</a></td>
<td class="summary">Adds a callback which should return a table of values to be added as options for the dropdown (appended after static options)</td>
</tr>
<tr>
<td class="name"><a href="#Dropdown._prototype:add_option_callback">Dropdown._prototype:add_option_callback(option, callback)</a></td>
<td class="summary">Adds a case specific callback which will only run when that option is selected (general case still triggered)</td>
</tr>
<tr>
<td class="name"><a href="#Dropdown.select_value">Dropdown.select_value(element, value)</a></td>
<td class="summary">Selects the option from a dropdown or list box given the value rather than key</td>
</tr>
<tr>
<td class="name"><a href="#Dropdown.get_selected_value">Dropdown.get_selected_value(element)</a></td>
<td class="summary">Returns the currently selected value rather than index</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Elem_Buttons">Elem Buttons </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#ElemButton.new_elem_button">ElemButton.new_elem_button([name])</a></td>
<td class="summary">Creates a new elem button element define</td>
</tr>
<tr>
<td class="name"><a href="#ElemButton._prototype.set_type">ElemButton._prototype.set_type</a></td>
<td class="summary">Sets the type of the elem button, the type is required so this must be called at least once</td>
</tr>
<tr>
<td class="name"><a href="#ElemButton._prototype:set_default">ElemButton._prototype:set_default(value)</a></td>
<td class="summary">Sets the default value for the elem button, this may be a function or a string</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Progress_Bars">Progress Bars </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.global">utils.global</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar.set_maximum">ProgressBar.set_maximum(element, amount)</a></td>
<td class="summary">Sets the maximum value that represents the end value of the progress bar</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar.increment">ProgressBar.increment(element[, amount=1])</a></td>
<td class="summary">Increases the value of the progressbar, if a define is given all of its instances have incremented</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar.decrement">ProgressBar.decrement(element[, amount=1])</a></td>
<td class="summary">Decreases the value of the progressbar, if a define is given all of its instances have decremented</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar.new_progressbar">ProgressBar.new_progressbar([name])</a></td>
<td class="summary">Creates a new progressbar element define</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:set_default_maximum">ProgressBar._prototype:set_default_maximum(amount)</a></td>
<td class="summary">Sets the maximum value that represents the end value of the progress bar</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:use_count_down">ProgressBar._prototype:use_count_down([state=true])</a></td>
<td class="summary">Will set the progress bar to start at 1 and trigger when it hits 0</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:increment">ProgressBar._prototype:increment([amount=1][, category])</a></td>
<td class="summary">Increases the value of the progressbar</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:increment_filtered">ProgressBar._prototype:increment_filtered([amount=1], filter)</a></td>
<td class="summary">Increases the value of the progressbar, if the filter condition is met, does not work with store</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:decrement">ProgressBar._prototype:decrement([amount=1][, category])</a></td>
<td class="summary">Decreases the value of the progressbar</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:decrement_filtered">ProgressBar._prototype:decrement_filtered([amount=1], filter)</a></td>
<td class="summary">Decreases the value of the progressbar, if the filter condition is met, does not work with store</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:add_element">ProgressBar._prototype:add_element(element[, maximum])</a></td>
<td class="summary">Adds an element into the list of instances that will are waiting to complete, does not work with store
note use store if you want persistent data, this only stores the elements not the values which they have</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:reset_element">ProgressBar._prototype:reset_element(element)</a></td>
<td class="summary">Resets an element, or its store, to be back at the start, either 1 or 0</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:event_counter">ProgressBar._prototype:event_counter([filter])</a></td>
<td class="summary">Event handler factory that counts up by 1 every time the event triggers, can filter which elements have incremented</td>
</tr>
<tr>
<td class="name"><a href="#ProgressBar._prototype:event_countdown">ProgressBar._prototype:event_countdown([filter])</a></td>
<td class="summary">Event handler factory that counts down by 1 every time the event triggers, can filter which elements have decremented</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Sliders">Sliders </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.instances">expcore.gui.instances</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#Slider.new_slider">Slider.new_slider([name])</a></td>
<td class="summary">Creates a new slider element define</td>
</tr>
<tr>
<td class="name"><a href="#Slider._prototype:set_range">Slider._prototype:set_range([min][, max])</a></td>
<td class="summary">Sets the range of a slider, if not used will use default values for a slider</td>
</tr>
<tr>
<td class="name"><a href="#Slider._prototype:draw_label">Slider._prototype:draw_label(element)</a></td>
<td class="summary">Draws a new label and links its value to the value of this slider, if no store then it will only show one value per player</td>
</tr>
<tr>
<td class="name"><a href="#Slider._prototype:enable_auto_draw_label">Slider._prototype:enable_auto_draw_label([state=true])</a></td>
<td class="summary">Enables auto draw of the label, the label will share the same parent element as the slider</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Text">Text </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui.core">expcore.gui.core</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.prototype">expcore.gui.prototype</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#Text.new_text_field">Text.new_text_field([name])</a></td>
<td class="summary">Creates a new text field element define</td>
</tr>
<tr>
<td class="name"><a href="#Text.new_text_box">Text.new_text_box([name])</a></td>
<td class="summary">Creates a new text box element define</td>
</tr>
<tr>
<td class="name"><a href="#Text._prototype_box:set_selectable">Text._prototype_box:set_selectable([state=true])</a></td>
<td class="summary">Sets the text box to be selectable</td>
</tr>
<tr>
<td class="name"><a href="#Text._prototype_box:set_word_wrap">Text._prototype_box:set_word_wrap([state=true])</a></td>
<td class="summary">Sets the text box to have word wrap</td>
</tr>
<tr>
<td class="name"><a href="#Text._prototype_box:set_read_only">Text._prototype_box:set_read_only([state=true])</a></td>
<td class="summary">Sets the text box to be read only</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Instances">Instances </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#utils.global">utils.global</a></td>
</tr>
<tr>
<td class="name"><a href="#Instances.has_categories">Instances.has_categories(name)</a></td>
<td class="summary">Returns if a instance group has a categorise function; must be registered</td>
</tr>
<tr>
<td class="name"><a href="#Instances.is_registered">Instances.is_registered(name)</a></td>
<td class="summary">Returns if the given name is a registered instance group</td>
</tr>
<tr>
<td class="name"><a href="#Instances.register">Instances.register(name[, categorise])</a></td>
<td class="summary">Registers the name of an instance group to allow for storing element instances</td>
</tr>
<tr>
<td class="name"><a href="#Instances.add_element">Instances.add_element(name, element)</a></td>
<td class="summary">Adds an element to the instance group under the correct category; must be registered</td>
</tr>
<tr>
<td class="name"><a href="#Instances.get_elements_raw">Instances.get_elements_raw(name[, category])</a></td>
<td class="summary">Gets all element instances without first removing any invalid ones; used internally and must be registered</td>
</tr>
<tr>
<td class="name"><a href="#Instances.get_valid_elements">Instances.get_valid_elements(name[, category][, callback])</a></td>
<td class="summary">Gets all valid element instances and has the option of running a callback on those that are valid</td>
</tr>
<tr>
<td class="name"><a href="#Instances.unregistered_add_element">Instances.unregistered_add_element(name, category, element)</a></td>
<td class="summary">A version of add_element that does not require the group to be registered</td>
</tr>
<tr>
<td class="name"><a href="#Instances.unregistered_get_elements">Instances.unregistered_get_elements(name, category[, callback])</a></td>
<td class="summary">A version of get_elements that does not require the group to be registered</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Prototype">Prototype </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#utils.game">utils.game</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.store">expcore.store</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.gui.instances">expcore.gui.instances</a></td>
</tr>
<tr>
<td class="name"><a href="#Constructor.event">Constructor.event(event_name)</a></td>
<td class="summary">Creates a new function to add functions to an event handler</td>
</tr>
<tr>
<td class="name"><a href="#Constructor.extend">Constructor.extend(new_prototype)</a></td>
<td class="summary">Extents a prototype with the base functions of all gui prototypes, no metatables</td>
</tr>
<tr>
<td class="name"><a href="#Constructor.store">Constructor.store(sync, callback)</a></td>
<td class="summary">Creates a new function which adds a store to a gui define</td>
</tr>
<tr>
<td class="name"><a href="#Constructor.setter">Constructor.setter(value_type, key[, second_key])</a></td>
<td class="summary">Creates a setter function that checks the type when a value is set</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:uid">Prototype:uid()</a></td>
<td class="summary">Gets the uid for the element define</td>
</tr>
<tr>
<td class="name"><a href="#Prototype.debug_name">Prototype.debug_name</a></td>
<td class="summary">Sets a debug alias for the define</td>
</tr>
<tr>
<td class="name"><a href="#Prototype.set_caption">Prototype.set_caption</a></td>
<td class="summary">Sets the caption for the element define</td>
</tr>
<tr>
<td class="name"><a href="#Prototype.set_tooltip">Prototype.set_tooltip</a></td>
<td class="summary">Sets the tooltip for the element define</td>
</tr>
<tr>
<td class="name"><a href="#Prototype.set_pre_authenticator">Prototype.set_pre_authenticator</a></td>
<td class="summary">Sets an authenticator that blocks the draw function if check fails</td>
</tr>
<tr>
<td class="name"><a href="#Prototype.set_post_authenticator">Prototype.set_post_authenticator</a></td>
<td class="summary">Sets an authenticator that disables the element if check fails</td>
</tr>
<tr>
<td class="name"><a href="#Prototype.on_draw">Prototype.on_draw</a></td>
<td class="summary">Registers a callback to the on_draw event</td>
</tr>
<tr>
<td class="name"><a href="#Prototype.on_style_update">Prototype.on_style_update</a></td>
<td class="summary">Registers a callback to the on_style_update event</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:set_style">Prototype:set_style(style[, callback])</a></td>
<td class="summary">Sets the style for the element define</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:set_embedded_flow">Prototype:set_embedded_flow(state)</a></td>
<td class="summary">Sets the element to be drawn inside a nameless flow, can be given a name using a function</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:raise_event">Prototype:raise_event(event_name, ...)</a></td>
<td class="summary">Raises a custom event for this define, any number of params can be given</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:draw_to">Prototype:draw_to(element)</a></td>
<td class="summary">The main function for defines, when called will draw an instance of this define to the given element
what is drawn is based on the data in draw_data which is set using other functions</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:get_store">Prototype:get_store(category)</a></td>
<td class="summary">Gets the value in this elements store, category needed if categorize function used</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:set_store">Prototype:set_store(category, value)</a></td>
<td class="summary">Sets the value in this elements store, category needed if categorize function used</td>
</tr>
<tr>
<td class="name"><a href="#Prototype:clear_store">Prototype:clear_store([category])</a></td>
<td class="summary">Sets the value in this elements store to nil, category needed if categorize function used</td>
</tr>
</tbody>
</table>
<table class="section-content-list">
<thead>
<h3><a href="#Test">Test </a></h3>
<span></span>
</thead>
<tbody>
<tr>
<td class="name"><a href="#expcore.gui">expcore.gui</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.common">expcore.common</a></td>
</tr>
<tr>
<td class="name"><a href="#resources.color_presets">resources.color_presets</a></td>
</tr>
<tr>
<td class="name"><a href="#utils.event">utils.event</a></td>
</tr>
<tr>
<td class="name"><a href="#expcore.store">expcore.store</a></td>
</tr>
</tbody>
</table>
<!-- module section list end -->
<br />
<!-- section start -->
<h3><span id="Dependencies" class="section-title"><a href="#Dependencies">Dependencies</a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.instances" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.instances">expcore.gui.instances</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.buttons" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.buttons">expcore.gui.elements.buttons</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.checkbox" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.checkbox">expcore.gui.elements.checkbox</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.dropdown" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.dropdown">expcore.gui.elements.dropdown</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.slider" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.slider">expcore.gui.elements.slider</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.text" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.text">expcore.gui.elements.text</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.elem-button" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.elem-button">expcore.gui.elements.elem-button</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.progress-bar" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.progress-bar">expcore.gui.elements.progress-bar</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.concepts.toolbar" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.concepts.toolbar">expcore.gui.concepts.toolbar</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.concepts.left" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.concepts.left">expcore.gui.concepts.left</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.concepts.center" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.concepts.center">expcore.gui.concepts.center</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.concepts.popups" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.concepts.popups">expcore.gui.concepts.popups</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Center_Guis" class="section-title"><a href="#Center_Guis">Center Guis </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.concepts.toolbar" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.concepts.toolbar">expcore.gui.concepts.toolbar</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames.get_flow" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames.get_flow">CenterFrames.get_flow(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets the center flow for a player</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the flow for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the center flow</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames.clear_flow" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames.clear_flow">CenterFrames.clear_flow(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Clears the center flow for a player</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to clear the flow for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames.draw_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames.draw_frame">CenterFrames.draw_frame(player, name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Draws the center frame for a player, if already open then will do nothing</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player that will have the frame drawn
</li>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the hui that will drawn
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new frame that was made</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames.redraw_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames.redraw_frame">CenterFrames.redraw_frame(player, name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Draws the center frame for a player, if already open then will destroy it and redraw</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player that will have the frame drawn
</li>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the hui that will drawn
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new frame that was made</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames.toggle_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames.toggle_frame">CenterFrames.toggle_frame(player, name[, state])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Toggles if the frame is currently open or not, will open if closed and close if open</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player that will have the frame toggled
</li>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the hui that will be toggled
</li>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when set will force a state for the frame
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">if the frame if no open or closed</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames.new_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames.new_frame">CenterFrames.new_frame(permission_name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new center frame define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>permission_name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name that can be used with the permission system
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new center frame define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames._prototype:set_auto_focus" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames._prototype:set_auto_focus">CenterFrames._prototype:set_auto_focus([state=true])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the frame to be the current active gui when opened and closes all other frames</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when true will auto close other frames and set this frame as player.opened
(<em>default</em>: true)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames._prototype:draw_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames._prototype:draw_frame">CenterFrames._prototype:draw_frame(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Draws this frame to the player, if already open does nothing (will call on_draw to draw to the frame)</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to draw the frame for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new frame that was drawn</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames._prototype:redraw_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames._prototype:redraw_frame">CenterFrames._prototype:redraw_frame(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Draws this frame to the player, if already open it will remove it and redraw it (will call on_draw to draw to the frame)</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to draw the frame for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new frame that was drawn</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames._prototype:toggle_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames._prototype:toggle_frame">CenterFrames._prototype:toggle_frame(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Toggles if the frame is open, if open it will close it and if closed it will open it</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to draw the frame for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">with the gui frame is now open</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#CenterFrames._prototype:event_handler" class="fragment-hashtag">#</a>
<span class="section-item-title" id="CenterFrames._prototype:event_handler">CenterFrames._prototype:event_handler([action=update])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates an event handler that will trigger one of its functions, use with Event.add</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>action</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the action to take on this event
(<em>default</em>: update)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Left_Guis" class="section-title"><a href="#Left_Guis">Left Guis </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.concepts.toolbar" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.concepts.toolbar">expcore.gui.concepts.toolbar</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.buttons" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.buttons">expcore.gui.elements.buttons</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#mod-gui" class="fragment-hashtag">#</a>
<span class="section-item-title" id="mod-gui">mod-gui</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.event" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.event">utils.event</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames.get_flow" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames.get_flow">LeftFrames.get_flow(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets the left frame flow for a player</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the flow of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the left frame flow for the player</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames.get_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames.get_frame">LeftFrames.get_frame(name, player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets one frame from the left flow by its name</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the gui frame to get
</li>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the frame of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the frame in the left frame flow with that name</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames.get_open" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames.get_open">LeftFrames.get_open(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets all open frames for a player, if non are open it will remove the close all button</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the flow of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">contains all the open (and registered) frames for the player</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames.toggle_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames.toggle_frame">LeftFrames.toggle_frame(name, player[, state])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Toggles the visibility of a left frame, or sets its visibility state</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the gui frame to toggle
</li>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the frame of
</li>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when given will be the state that the visibility is set to
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">the new state of the visibility</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames.new_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames.new_frame">LeftFrames.new_frame(permission_name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new left frame define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>permission_name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name that can be used with the permission system
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new left frame define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:set_open_by_default" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:set_open_by_default">LeftFrames._prototype:set_open_by_default([state=true])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets if the frame is visible when a player joins, can also be a function to return a boolean</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a> or <a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the default state of the visibility, can be a function
state param - player LuaPlayer - the player that has joined the game
state param - define_name string - the define name for the frame
state return - boolean - false will hide the frame
(<em>default</em>: true)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:set_direction" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:set_direction">LeftFrames._prototype:set_direction(direction)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the direction of the frame, either vertical or horizontal</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>direction</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the direction to have the elements be added to the frame
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:_internal_draw" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:_internal_draw">LeftFrames._prototype:_internal_draw(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates the gui for the first time, used internally</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to draw the frame to
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the frame that was made</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:get_frame" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:get_frame">LeftFrames._prototype:get_frame(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets the frame for this define from the left frame flow</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the frame of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the frame in the left frame flow for this define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:is_open" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:is_open">LeftFrames._prototype:is_open(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Returns if the player currently has this define visible</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the frame of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if it is open/visible</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:toggle" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:toggle">LeftFrames._prototype:toggle(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Toggles the visibility of the left frame</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to toggle the frame of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">the new state of the visibility</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:update" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:update">LeftFrames._prototype:update(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Updates the contents of the left frame, first tries update callback, other wise will clear and redraw</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to update the frame of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:update_all" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:update_all">LeftFrames._prototype:update_all([update_offline=false])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Updates the frame for all players, see update</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>update_offline</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when true will update the frame for offline players
(<em>default</em>: false)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:redraw" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:redraw">LeftFrames._prototype:redraw(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Redraws the frame by calling on_draw, will always clear the frame</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to update the frame of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:redraw_all" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:redraw_all">LeftFrames._prototype:redraw_all([update_offline=false])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Redraws the frame for all players, see redraw</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>update_offline</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when true will update the frame for offline players
(<em>default</em>: false)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#LeftFrames._prototype:event_handler" class="fragment-hashtag">#</a>
<span class="section-item-title" id="LeftFrames._prototype:event_handler">LeftFrames._prototype:event_handler([action=update])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates an event handler that will trigger one of its functions, use with Event.add</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>action</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the action to take on this event
(<em>default</em>: update)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Popups" class="section-title"><a href="#Popups">Popups </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.event" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.event">utils.event</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.progress-bar" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.progress-bar">expcore.gui.elements.progress-bar</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.buttons" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.buttons">expcore.gui.elements.buttons</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#mod-gui" class="fragment-hashtag">#</a>
<span class="section-item-title" id="mod-gui">mod-gui</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#resources.color_presets" class="fragment-hashtag">#</a>
<span class="section-item-title" id="resources.color_presets">resources.color_presets</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.global" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.global">utils.global</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#PopupFrames.get_flow" class="fragment-hashtag">#</a>
<span class="section-item-title" id="PopupFrames.get_flow">PopupFrames.get_flow(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets the left flow that contains the popup frames</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to get the flow for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the left flow that contains the popup frames</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#PopupFrames.open" class="fragment-hashtag">#</a>
<span class="section-item-title" id="PopupFrames.open">PopupFrames.open(define_name, player[, open_time], ...)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Opens a popup for the player, can give the amount of time it is open as well as params for the draw function</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>define_name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the define that you want to open for the player
</li>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to open the popup for
</li>
<li class="section-subitem-li">
<strong><em>open_time</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the minimum number of ticks you want the popup open for, 0 means no limit, nil will take default
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>...</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">any</span></span>)
the other params that you want to pass to your on_draw event
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the frame that was drawn, the inner gui flow which contains the content</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#PopupFrames.close_progress" class="fragment-hashtag">#</a>
<span class="section-item-title" id="PopupFrames.close_progress">PopupFrames.close_progress</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Progress bar which when depleted will close the popup frame</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#PopupFrames.close_button" class="fragment-hashtag">#</a>
<span class="section-item-title" id="PopupFrames.close_button">PopupFrames.close_button</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">A button which can be used to close the gui before the timer runs out</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#PopupFrames.new_popup" class="fragment-hashtag">#</a>
<span class="section-item-title" id="PopupFrames.new_popup">PopupFrames.new_popup([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new popup frame define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new popup frame define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#PopupFrames._prototype:set_default_open_time" class="fragment-hashtag">#</a>
<span class="section-item-title" id="PopupFrames._prototype:set_default_open_time">PopupFrames._prototype:set_default_open_time(amount)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the default open time for the popup, will be used if non is provided with open</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the number of ticks, by default, the popup will be open for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the define to allow for chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#PopupFrames._prototype:open" class="fragment-hashtag">#</a>
<span class="section-item-title" id="PopupFrames._prototype:open">PopupFrames._prototype:open(player[, open_time], ...)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Opens this define for a player, can be given open time and any other params for the draw function</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to open the popup for
</li>
<li class="section-subitem-li">
<strong><em>open_time</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the minimum number of ticks you want the popup open for, 0 means no limit, nil will take default
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>...</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">any</span></span>)
the other params that you want to pass to your on_draw event
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the frame that was drawn, the inner gui flow which contains the content</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Toolbar" class="section-title"><a href="#Toolbar">Toolbar </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.elements.buttons" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.elements.buttons">expcore.gui.elements.buttons</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.roles" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.roles">expcore.roles</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.event" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.event">utils.event</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#mod-gui" class="fragment-hashtag">#</a>
<span class="section-item-title" id="mod-gui">mod-gui</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Toolbar.new_button" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Toolbar.new_button">Toolbar.new_button([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds a new button to the toolbar</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
when given allows an alias to the button for the permission system
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the button define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Toolbar.add_button" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Toolbar.add_button">Toolbar.add_button(button)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds an existing buttton to the toolbar</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>button</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
the button define for the button to be added
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Toolbar.update" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Toolbar.update">Toolbar.update(player)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Updates the player's toolbar with an new buttons or expected change in auth return</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>player</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaPlayer.html">LuaPlayer</a></span>)
the player to update the toolbar for
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Core" class="section-title"><a href="#Core">Core </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.gui" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.gui">utils.gui</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#new_define" class="fragment-hashtag">#</a>
<span class="section-item-title" id="new_define">new_define(prototype[, debug_name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Used to create new element defines from a class prototype, please use the own given by the class</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>prototype</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
the class prototype that will be used for the element define
</li>
<li class="section-subitem-li">
<strong><em>debug_name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name that you want to see while debuging
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new element define with all functions accessed via __index metamethod</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#get_define" class="fragment-hashtag">#</a>
<span class="section-item-title" id="get_define">get_define(name[, internal])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets an element define give the uid, debug name or a copy of the element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a> or <a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
the uid, debug name or define for the element define to get
</li>
<li class="section-subitem-li">
<strong><em>internal</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when true the error trace is one level higher (used internally)
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the element define that was found or an error</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#categorize_by_player" class="fragment-hashtag">#</a>
<span class="section-item-title" id="categorize_by_player">categorize_by_player(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">A categorize function to be used with add_store, each player has their own value</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element that will be converted to a string
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
<span class="return-text">the player's name who owns this element</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#categorize_by_force" class="fragment-hashtag">#</a>
<span class="section-item-title" id="categorize_by_force">categorize_by_force(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">A categorize function to be used with add_store, each force has its own value</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element that will be converted to a string
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
<span class="return-text">the player's force name who owns this element</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#categorize_by_surface" class="fragment-hashtag">#</a>
<span class="section-item-title" id="categorize_by_surface">categorize_by_surface(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">A categorize function to be used with add_store, each surface has its own value</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element that will be converted to a string
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
<span class="return-text">the player's surface name who owns this element</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#draw" class="fragment-hashtag">#</a>
<span class="section-item-title" id="draw">draw(name, element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Draws a copy of the element define to the parent element, see draw_to</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a> or <a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
the uid, debug name or define for the element define to draw
</li>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiEelement.html">LuaGuiEelement</a></span>)
the parent element that it the define will be drawn to
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new element that was created</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#toggle_enabled" class="fragment-hashtag">#</a>
<span class="section-item-title" id="toggle_enabled">toggle_enabled(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Will toggle the enabled state of an element</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the gui element to toggle
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">the new state that the element has</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#toggle_visible" class="fragment-hashtag">#</a>
<span class="section-item-title" id="toggle_visible">toggle_visible(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Will toggle the visiblity of an element</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the gui element to toggle
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">the new state that the element has</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#set_padding" class="fragment-hashtag">#</a>
<span class="section-item-title" id="set_padding">set_padding(element[, up=0][, down=0][, left=0][, right=0])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the padding for a gui element</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element to set the padding for
</li>
<li class="section-subitem-li">
<strong><em>up</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the top
(<em>default</em>: 0)
</li>
<li class="section-subitem-li">
<strong><em>down</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the bottom
(<em>default</em>: 0)
</li>
<li class="section-subitem-li">
<strong><em>left</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the left
(<em>default</em>: 0)
</li>
<li class="section-subitem-li">
<strong><em>right</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the right
(<em>default</em>: 0)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#set_padding_style" class="fragment-hashtag">#</a>
<span class="section-item-title" id="set_padding_style">set_padding_style(style[, up=0][, down=0][, left=0][, right=0])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the padding for a gui style</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>style</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaStyle.html">LuaStyle</a></span>)
the element to set the padding for
</li>
<li class="section-subitem-li">
<strong><em>up</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the top
(<em>default</em>: 0)
</li>
<li class="section-subitem-li">
<strong><em>down</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the bottom
(<em>default</em>: 0)
</li>
<li class="section-subitem-li">
<strong><em>left</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the left
(<em>default</em>: 0)
</li>
<li class="section-subitem-li">
<strong><em>right</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount of padding on the right
(<em>default</em>: 0)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#create_alignment" class="fragment-hashtag">#</a>
<span class="section-item-title" id="create_alignment">create_alignment(element[, name][, horizontal_align='right'][, vertical_align='center'])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Allows the creation of an alignment flow to place elements into</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element to add this alignment into
</li>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name to use for the alignment
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>horizontal_align</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the horizontal alignment of the elements in this flow
(<em>default</em>: 'right')
</li>
<li class="section-subitem-li">
<strong><em>vertical_align</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the vertical alignment of the elements in this flow
(<em>default</em>: 'center')
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new flow that was created</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#destroy_if_valid" class="fragment-hashtag">#</a>
<span class="section-item-title" id="destroy_if_valid">destroy_if_valid(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Destroies an element but tests for it being present and valid first</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element to be destroied
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if it was destoried</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#create_scroll_table" class="fragment-hashtag">#</a>
<span class="section-item-title" id="create_scroll_table">create_scroll_table(element, table_size, maximal_height[, name='scroll'])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a scroll area with a table inside, table can be any size</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element to add this scroll into
</li>
<li class="section-subitem-li">
<strong><em>table_size</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the number of columns in the table
</li>
<li class="section-subitem-li">
<strong><em>maximal_height</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the max hieght of the scroll
</li>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the scoll element
(<em>default</em>: 'scroll')
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the table that was made</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#create_header" class="fragment-hashtag">#</a>
<span class="section-item-title" id="create_header">create_header(element, caption[, tooltip][, right_align][, name='header'])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a header section with a label and button area</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element to add this header into
</li>
<li class="section-subitem-li">
<strong><em>caption</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">localeString</span></span>)
the caption that is used as the title
</li>
<li class="section-subitem-li">
<strong><em>tooltip</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">localeString</span></span>)
the tooltip that is shown on the caption
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>right_align</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when true will include the right align area
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the header area
(<em>default</em>: 'header')
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the header that was made, or the align area if that was created</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Buttons" class="section-title"><a href="#Buttons">Buttons </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#mod-gui" class="fragment-hashtag">#</a>
<span class="section-item-title" id="mod-gui">mod-gui</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Button.new_button" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Button.new_button">Button.new_button([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new button element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new button element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Button._prototype:set_sprites" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Button._prototype:set_sprites">Button._prototype:set_sprites(sprite[, hovered_sprite][, clicked_sprite])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds sprites to a button making it a sprite button</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>sprite</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">SpritePath</span></span>)
the sprite path for the default sprite for the button
</li>
<li class="section-subitem-li">
<strong><em>hovered_sprite</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">SpritePath</span></span>)
the sprite path for the sprite when the player hovers over the button
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>clicked_sprite</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">SpritePath</span></span>)
the sprite path for the sprite when the player clicks the button
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">returns the button define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Button._prototype:set_click_filter" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Button._prototype:set_click_filter">Button._prototype:set_click_filter(filter[, ...])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds a click / mouse button filter to the button</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>filter</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
?string|table either a of mouse buttons or the first mouse button to filter, with a table true means allowed
</li>
<li class="section-subitem-li">
<strong><em>...</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
when filter is not a you can add the mouse buttons one after each other
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">returns the button define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Button._prototype:set_key_filter" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Button._prototype:set_key_filter">Button._prototype:set_key_filter(filter[, ...])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds a control key filter to the button</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>filter</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
?string|table either a of control keys or the first control keys to filter, with a table true means allowed
</li>
<li class="section-subitem-li">
<strong><em>...</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
when filter is not a you can add the control keys one after each other
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">returns the button define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Checkboxs" class="section-title"><a href="#Checkboxs">Checkboxs </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.store">expcore.store</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox.new_checkbox" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox.new_checkbox">Checkbox.new_checkbox([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new checkbox element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new checkbox element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox.new_radiobutton" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox.new_radiobutton">Checkbox.new_radiobutton([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new radiobutton element define, has all functions checkbox has</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new button element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox._prototype_radiobutton:add_as_option" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox._prototype_radiobutton:add_as_option">Checkbox._prototype_radiobutton:add_as_option(option_set, option_name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds this radiobutton to be an option in the given option set (only one can be true at a time)</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>option_set</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the option set to add this element to
</li>
<li class="section-subitem-li">
<strong><em>option_name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of this option that will be used to identify it
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">the define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox._prototype_radiobutton:get_store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox._prototype_radiobutton:get_store">Checkbox._prototype_radiobutton:get_store(category, internal)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets the stored value of the radiobutton or the option set if present</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
[opt] the category to get such as player name or force name
</li>
<li class="section-subitem-li">
<strong><em>internal</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
used to prevent stackover flow
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">any</span></span>)
<span class="return-text">the value that is stored for this define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox._prototype_radiobutton:set_store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox._prototype_radiobutton:set_store">Checkbox._prototype_radiobutton:set_store(category, value, internal)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the stored value of the radiobutton or the option set if present</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
[opt] the category to get such as player name or force name
</li>
<li class="section-subitem-li">
<strong><em>value</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
the value to set for this define, must be valid for its type ie for checkbox etc
</li>
<li class="section-subitem-li">
<strong><em>internal</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
used to prevent stackover flow
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if the value was set</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox.new_option_set" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox.new_option_set">Checkbox.new_option_set(name, callback, categorize)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Registers a new option set that can be linked to radiobuttons (only one can be true at a time)</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the option set, must be unique
</li>
<li class="section-subitem-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the update callback when the value of the option set changes
callback param - value string - the new selected option for this option set
callback param - category string - the category that updated if categorize was used
</li>
<li class="section-subitem-li">
<strong><em>categorize</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the function used to convert an element into a string
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
<span class="return-text">the name of this option set to be passed to add_as_option</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox.draw_option_set" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox.draw_option_set">Checkbox.draw_option_set(name, element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Draws all radiobuttons that are part of an option set at once (Gui.draw will not work)</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the option set to draw the radiobuttons of
</li>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the parent element that the radiobuttons will be drawn to
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Checkbox.reset_radiobuttons" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Checkbox.reset_radiobuttons">Checkbox.reset_radiobuttons(element[, exclude][, recursive=false])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets all radiobutton in a element to false (unless excluded) and can act recursively</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the root gui element to start setting radio buttons from
</li>
<li class="section-subitem-li">
<strong><em>exclude</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
?string|table the name of the radiobutton to exclude or a of radiobuttons where true will set the state true
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>recursive</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a> or <a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
if true will recur as much as possible, if a will recur that number of times
(<em>default</em>: false)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if successful</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Dropdowns" class="section-title"><a href="#Dropdowns">Dropdowns </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Dropdown.new_dropdown" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Dropdown.new_dropdown">Dropdown.new_dropdown([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new dropdown element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new dropdown element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Dropdown.new_list_box" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Dropdown.new_list_box">Dropdown.new_list_box([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new list box element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new list box element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Dropdown._prototype:new_static_options" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Dropdown._prototype:new_static_options">Dropdown._prototype:new_static_options(options[, ...], the)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds new static options to the dropdown which will trigger the general callback</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>options</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
?string|table either a of option strings or the first option string, with a table values are the options
</li>
<li class="section-subitem-li">
<strong><em>...</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
when options is not a you can add the options one after each other
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>the</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">self</span></span>)
define to allow chaining
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Dropdown._prototype:new_dynamic_options" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Dropdown._prototype:new_dynamic_options">Dropdown._prototype:new_dynamic_options(callback)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds a callback which should return a table of values to be added as options for the dropdown (appended after static options)</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the function that will run to get the options for the dropdown
callback param - player LuaPlayer - the player that the element is being drawn to
callback param - element LuaGuiElement - the element that is being drawn
callback return - table - the values of this table will be appended to the static options of the dropdown
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">the define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Dropdown._prototype:add_option_callback" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Dropdown._prototype:add_option_callback">Dropdown._prototype:add_option_callback(option, callback)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds a case specific callback which will only run when that option is selected (general case still triggered)</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>option</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the option to trigger the callback on; if not already added then will be added as an option
</li>
<li class="section-subitem-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the function that will be called when that option is selected
callback param - player LuaPlayer - the player who owns the gui element
callback param - element LuaGuiElement - the element which is being effected
callback param - value string - the new option that has been selected
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">the define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Dropdown.select_value" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Dropdown.select_value">Dropdown.select_value(element, value)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Selects the option from a dropdown or list box given the value rather than key</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element that contains the option
</li>
<li class="section-subitem-li">
<strong><em>value</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the option to select from the dropdown
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
<span class="return-text">the key where the value was</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Dropdown.get_selected_value" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Dropdown.get_selected_value">Dropdown.get_selected_value(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Returns the currently selected value rather than index</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the gui element that you want to get the value of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
<span class="return-text">the value that is currently selected</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Elem_Buttons" class="section-title"><a href="#Elem_Buttons">Elem Buttons </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ElemButton.new_elem_button" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ElemButton.new_elem_button">ElemButton.new_elem_button([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new elem button element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new elem button element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ElemButton._prototype.set_type" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ElemButton._prototype.set_type">ElemButton._prototype.set_type</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the type of the elem button, the type is required so this must be called at least once</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>type</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the type that this elem button is see factorio api
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ElemButton._prototype:set_default" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ElemButton._prototype:set_default">ElemButton._prototype:set_default(value)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the default value for the elem button, this may be a function or a string</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>value</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a> or <a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
string a will be a static default and a function will be called when drawn to get the default
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">the</span></span>)
<span class="return-text">element define to allow for chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Progress_Bars" class="section-title"><a href="#Progress_Bars">Progress Bars </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.global" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.global">utils.global</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar.set_maximum" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar.set_maximum">ProgressBar.set_maximum(element, amount)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the maximum value that represents the end value of the progress bar</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a> or <a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
either a gui element or a registered define
</li>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to have set as the maximum
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar.increment" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar.increment">ProgressBar.increment(element[, amount=1])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Increases the value of the progressbar, if a define is given all of its instances have incremented</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a> or <a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
either a gui element or a registered define
</li>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to increase the progressbar by
(<em>default</em>: 1)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar.decrement" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar.decrement">ProgressBar.decrement(element[, amount=1])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Decreases the value of the progressbar, if a define is given all of its instances have decremented</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a> or <a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
either a gui element or a registered define
</li>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to decrease the progressbar by
(<em>default</em>: 1)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar.new_progressbar" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar.new_progressbar">ProgressBar.new_progressbar([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new progressbar element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new progressbar element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:set_default_maximum" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:set_default_maximum">ProgressBar._prototype:set_default_maximum(amount)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the maximum value that represents the end value of the progress bar</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to have set as the maximum
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:use_count_down" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:use_count_down">ProgressBar._prototype:use_count_down([state=true])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Will set the progress bar to start at 1 and trigger when it hits 0</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when true the bar will start filled, to be used with decrease
(<em>default</em>: true)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:increment" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:increment">ProgressBar._prototype:increment([amount=1][, category])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Increases the value of the progressbar</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to increase the progressbar by
(<em>default</em>: 1)
</li>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the category that is used with a store
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:increment_filtered" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:increment_filtered">ProgressBar._prototype:increment_filtered([amount=1], filter)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Increases the value of the progressbar, if the filter condition is met, does not work with store</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to increase the progressbar by
(<em>default</em>: 1)
</li>
<li class="section-subitem-li">
<strong><em>filter</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the filter to be used
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:decrement" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:decrement">ProgressBar._prototype:decrement([amount=1][, category])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Decreases the value of the progressbar</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to decrease the progressbar by
(<em>default</em>: 1)
</li>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the category that is used with a store
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:decrement_filtered" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:decrement_filtered">ProgressBar._prototype:decrement_filtered([amount=1], filter)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Decreases the value of the progressbar, if the filter condition is met, does not work with store</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>amount</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the amount to decrease the progressbar by
(<em>default</em>: 1)
</li>
<li class="section-subitem-li">
<strong><em>filter</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the filter to be used
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:add_element" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:add_element">ProgressBar._prototype:add_element(element[, maximum])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds an element into the list of instances that will are waiting to complete, does not work with store
note use store if you want persistent data, this only stores the elements not the values which they have</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element that you want to add into the waiting to complete list
</li>
<li class="section-subitem-li">
<strong><em>maximum</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the maximum for this element if not given the default for this define is used
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:reset_element" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:reset_element">ProgressBar._prototype:reset_element(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Resets an element, or its store, to be back at the start, either 1 or 0</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element that you want to reset the progress of
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:event_counter" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:event_counter">ProgressBar._prototype:event_counter([filter])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Event handler factory that counts up by 1 every time the event triggers, can filter which elements have incremented</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>filter</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
when given will use filtered increment
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
<span class="return-text">the event handler</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#ProgressBar._prototype:event_countdown" class="fragment-hashtag">#</a>
<span class="section-item-title" id="ProgressBar._prototype:event_countdown">ProgressBar._prototype:event_countdown([filter])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Event handler factory that counts down by 1 every time the event triggers, can filter which elements have decremented</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>filter</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
when given will use filtered decrement
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
<span class="return-text">the event handler</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Sliders" class="section-title"><a href="#Sliders">Sliders </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.instances" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.instances">expcore.gui.instances</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Slider.new_slider" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Slider.new_slider">Slider.new_slider([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new slider element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new slider element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Slider._prototype:set_range" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Slider._prototype:set_range">Slider._prototype:set_range([min][, max])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the range of a slider, if not used will use default values for a slider</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>min</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the minimum value that the slider can take
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>max</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
the maximum value that the slider can take
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">the define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Slider._prototype:draw_label" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Slider._prototype:draw_label">Slider._prototype:draw_label(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Draws a new label and links its value to the value of this slider, if no store then it will only show one value per player</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the parent element that the label will be drawn to
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new label element so that styles can be applied</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Slider._prototype:enable_auto_draw_label" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Slider._prototype:enable_auto_draw_label">Slider._prototype:enable_auto_draw_label([state=true])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Enables auto draw of the label, the label will share the same parent element as the slider</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when false will disable the auto draw of the label
(<em>default</em>: true)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">the define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Text" class="section-title"><a href="#Text">Text </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.core" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.core">expcore.gui.core</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.prototype" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.prototype">expcore.gui.prototype</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Text.new_text_field" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Text.new_text_field">Text.new_text_field([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new text field element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new text field element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Text.new_text_box" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Text.new_text_box">Text.new_text_box([name])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new text box element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the optional debug name that can be added
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the new text box element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Text._prototype_box:set_selectable" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Text._prototype_box:set_selectable">Text._prototype_box:set_selectable([state=true])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the text box to be selectable</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when false will set the state to false
(<em>default</em>: true)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">table the define to allow for chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Text._prototype_box:set_word_wrap" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Text._prototype_box:set_word_wrap">Text._prototype_box:set_word_wrap([state=true])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the text box to have word wrap</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when false will set the state to false
(<em>default</em>: true)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">table the define to allow for chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Text._prototype_box:set_read_only" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Text._prototype_box:set_read_only">Text._prototype_box:set_read_only([state=true])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the text box to be read only</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
when false will set the state to false
(<em>default</em>: true)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">table the define to allow for chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Instances" class="section-title"><a href="#Instances">Instances </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.global" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.global">utils.global</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.has_categories" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.has_categories">Instances.has_categories(name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Returns if a instance group has a categorise function; must be registered</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if there is a categorise function</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.is_registered" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.is_registered">Instances.is_registered(name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Returns if the given name is a registered instance group</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group you are testing
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if the name is registered</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.register" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.register">Instances.register(name[, categorise])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Registers the name of an instance group to allow for storing element instances</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group; must to unique
</li>
<li class="section-subitem-li">
<strong><em>categorise</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
function used to turn the element into a string
categorise param - element LuaGuiElement - the gui element to be turned into a string
categorise return - string - the category that the element will be added to like the player's name or force's name
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
<span class="return-text">the name that was added so it can be used as a variable</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.add_element" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.add_element">Instances.add_element(name, element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Adds an element to the instance group under the correct category; must be registered</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group to add the element to
</li>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element to add the the instance group
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.get_elements_raw" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.get_elements_raw">Instances.get_elements_raw(name[, category])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets all element instances without first removing any invalid ones; used internally and must be registered</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group to get the instances of
</li>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the category to get the instance from, not needed when no categorise function
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the table of element instances of which some may be invalid</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.get_valid_elements" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.get_valid_elements">Instances.get_valid_elements(name[, category][, callback])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets all valid element instances and has the option of running a callback on those that are valid</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group to get the instances of
</li>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the category to get the instances of, not needed when no categorise function
(<em>optional</em>)
</li>
<li class="section-subitem-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
when given the callback will be ran on all valid elements
callback param - element LuaGuiElement - the current valid element
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the table of element instances with all invalid ones removed</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.unregistered_add_element" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.unregistered_add_element">Instances.unregistered_add_element(name, category, element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">A version of add_element that does not require the group to be registered</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group to add the element to
</li>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a> or <a class="type" href="https://www.lua.org/pil/2.1.html">nil</a></span>)
the category to add the element to, can be nil but must still be given
</li>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element to add to the instance group
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Instances.unregistered_get_elements" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Instances.unregistered_get_elements">Instances.unregistered_get_elements(name, category[, callback])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">A version of get_elements that does not require the group to be registered</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the instance group to get the instances of
</li>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a> or <a class="type" href="https://www.lua.org/pil/2.1.html">nil</a></span>)
the category to get the instances of, can be nil but must still be given
</li>
<li class="section-subitem-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
when given will be called on all valid instances
callback param - element LuaGuiElement - the current valid element
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the table of element instances with all invalid ones removed</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Prototype" class="section-title"><a href="#Prototype">Prototype </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.game" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.game">utils.game</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.store">expcore.store</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui.instances" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui.instances">expcore.gui.instances</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Constructor.event" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Constructor.event">Constructor.event(event_name)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new function to add functions to an event handler</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>event_name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the event that callbacks will be added to
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
<span class="return-text">the function used to register handlers</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Constructor.extend" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Constructor.extend">Constructor.extend(new_prototype)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Extents a prototype with the base functions of all gui prototypes, no metatables</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>new_prototype</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
the prototype that you want to add the functions to
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.5.html">table</a></span>)
<span class="return-text">the same prototype but with the new functions added</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Constructor.store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Constructor.store">Constructor.store(sync, callback)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a new function which adds a store to a gui define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>sync</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
if the function should create a synced store
</li>
<li class="section-subitem-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the function called when needing to update the value of an element
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
<span class="return-text">the function that will add a store for this define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Constructor.setter" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Constructor.setter">Constructor.setter(value_type, key[, second_key])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Creates a setter function that checks the type when a value is set</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>value_type</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the type that the value should be when it is set
</li>
<li class="section-subitem-li">
<strong><em>key</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the key of the define that will be set
</li>
<li class="section-subitem-li">
<strong><em>second_key</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
allows for setting of a key in a sub table
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
<span class="return-text">the function that will check the type and set the value</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:uid" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:uid">Prototype:uid()</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets the uid for the element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
<span class="return-text">the uid of this element define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype.debug_name" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype.debug_name">Prototype.debug_name</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets a debug alias for the define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the debug name for the element define that can be used to get this element define
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype.set_caption" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype.set_caption">Prototype.set_caption</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the caption for the element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>caption</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the caption that will be drawn with the element
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype.set_tooltip" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype.set_tooltip">Prototype.set_tooltip</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the tooltip for the element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>tooltip</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the tooltip that will be displayed for this element when drawn
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype.set_pre_authenticator" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype.set_pre_authenticator">Prototype.set_pre_authenticator</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets an authenticator that blocks the draw function if check fails</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the function that will be ran to test if the element should be drawn or not
callback param - LuaPlayer player - the player that the element is being drawn to
callback param - string define_name - the name of the define that is being drawn
callback return - boolean - false will stop the element from being drawn
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype.set_post_authenticator" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype.set_post_authenticator">Prototype.set_post_authenticator</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets an authenticator that disables the element if check fails</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
the function that will be ran to test if the element should be enabled or not
callback param - LuaPlayer player - the player that the element is being drawn to
callback param - string define_name - the name of the define that is being drawn
callback return - boolean - false will disable the element
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype.on_draw" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype.on_draw">Prototype.on_draw</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Registers a callback to the on_draw event</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
callback param - LuaPlayer player - the player that the element was drawn to
callback param - LuaGuiElement element - the element that was drawn
callback param - any ... - any other params passed by the draw_to function
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype.on_style_update" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype.on_style_update">Prototype.on_style_update</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Registers a callback to the on_style_update event</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<ul>
<li class="section-subitem-module-field-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
callback param - LuaStyle style - the style that was changed and/or needs changing
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:set_style" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:set_style">Prototype:set_style(style[, callback])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the style for the element define</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>style</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the style that will be used for this element when drawn
</li>
<li class="section-subitem-li">
<strong><em>callback</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
function is called when element is drawn to alter its style
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">the element define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:set_embedded_flow" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:set_embedded_flow">Prototype:set_embedded_flow(state)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the element to be drawn inside a nameless flow, can be given a name using a function</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>state</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a> or <a class="type" href="https://www.lua.org/pil/2.6.html">function</a></span>)
when true a padless flow is created to contain the element
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">self</span></span>)
<span class="return-text">the element define to allow chaining</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:raise_event" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:raise_event">Prototype:raise_event(event_name, ...)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Raises a custom event for this define, any number of params can be given</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>event_name</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the name of the event that you want to raise
</li>
<li class="section-subitem-li">
<strong><em>...</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">any</span></span>)
any params that you want to pass to the event
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="https://www.lua.org/pil/2.3.html">number</a></span>)
<span class="return-text">the number of handlers that were registered</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:draw_to" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:draw_to">Prototype:draw_to(element)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">The main function for defines, when called will draw an instance of this define to the given element
what is drawn is based on the data in draw_data which is set using other functions</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>element</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
the element that the define will draw a instance of its self onto
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/LuaGuiElement.html">LuaGuiElement</a></span>)
<span class="return-text">the new element that was drawn</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:get_store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:get_store">Prototype:get_store(category)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Gets the value in this elements store, category needed if categorize function used</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
[opt] the category to get such as player name or force name
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><span class="type">any</span></span>)
<span class="return-text">the value that is stored for this define</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:set_store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:set_store">Prototype:set_store(category, value)</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the value in this elements store, category needed if categorize function used</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
[opt] the category to get such as player name or force name
</li>
<li class="section-subitem-li">
<strong><em>value</em></strong>
<strong> : </strong>
(<span class="types"><span class="type">any</span></span>)
the value to set for this define, must be valid for its type ie for checkbox etc
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if the value was set</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#Prototype:clear_store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="Prototype:clear_store">Prototype:clear_store([category])</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<p class="section-item-summary">Sets the value in this elements store to nil, category needed if categorize function used</p>
<p class="section-item-description"></p>
<!-- parameters start -->
<strong>Parameters:</strong>
<ul>
<li class="section-subitem-li">
<strong><em>category</em></strong>
<strong> : </strong>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#string">string</a></span>)
the category to get such as player name or force name
(<em>optional</em>)
</li>
</ul>
<!-- parameters end -->
<!-- returns start -->
<strong>Returns:</strong>
<ul>
<li>
(<span class="types"><a class="type" href="http://lua-api.factorio.com/latest/Builtin-Types.html#boolean">boolean</a></span>)
<span class="return-text">true if the value was set</span>
</li>
</ul>
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<h3><span id="Test" class="section-title"><a href="#Test">Test </a></span></h3>
<dl class="section-body-container">
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.gui" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.gui">expcore.gui</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.common" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.common">expcore.common</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#resources.color_presets" class="fragment-hashtag">#</a>
<span class="section-item-title" id="resources.color_presets">resources.color_presets</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#utils.event" class="fragment-hashtag">#</a>
<span class="section-item-title" id="utils.event">utils.event</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
<dt>
<div class="divider divider-custom"></div>
<div class="block section-item-header">
<a href="#expcore.store" class="fragment-hashtag">#</a>
<span class="section-item-title" id="expcore.store">expcore.store</span>
</div>
</dt>
<dd>
<div class="section-item-body">
<!-- parameters start -->
<!-- parameters end -->
<!-- returns start -->
<!-- returns end -->
<!-- see also start -->
<!-- see also end -->
<!-- usage start -->
<!-- usage end -->
</dd>
</dl>
<!-- section end -->
</div>
</div>
</div>
<div class="footer container grid-1280">
<div class="divider divider-custom"></div>
<div class="footer-columns columns">
<div class="sidebar-footer column col-3 col-sm-12">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc </a></i>
</div>
<div class="content-footer column col-9 col-sm-12">
<i>Last updated 2019-10-11 23:24:57 UTC</i>
</div>
</div>
</div>
</body>
</html>