<spanid="evennia-contrib-base-systems-components-component"></span><h1>evennia.contrib.base_systems.components.component<aclass="headerlink"href="#module-evennia.contrib.base_systems.components.component"title="Link to this heading">¶</a></h1>
<p>Components - ChrisLR 2022</p>
<p>This file contains the base class to inherit for creating new components.</p>
<emclass="property"><spanclass="k"><spanclass="pre">class</span></span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">evennia.contrib.base_systems.components.component.</span></span><spanclass="sig-name descname"><spanclass="pre">BaseComponent</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">name</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">parents</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">attrs</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#BaseComponent"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.BaseComponent"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">class</span></span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">evennia.contrib.base_systems.components.component.</span></span><spanclass="sig-name descname"><spanclass="pre">Component</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">host</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">name</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">''</span></em><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.name"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">slot</span></span><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">None</span></em><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.slot"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">__init__</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">host</span></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.__init__"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.__init__"title="Link to this definition">¶</a></dt>
<spanclass="sig-name descname"><spanclass="pre">host</span></span><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.host"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">classmethod</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">default_create</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">host</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.default_create"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.default_create"title="Link to this definition">¶</a></dt>
<dd><dlclass="simple">
<dt>This is called when the host is created</dt><dd><p>and should return the base initialized state of a component.</p>
<emclass="property"><spanclass="k"><spanclass="pre">classmethod</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">create</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">host</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.create"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.create"title="Link to this definition">¶</a></dt>
<dd><p>This is the method to call when supplying kwargs to initialize a component.</p>
<spanclass="sig-name descname"><spanclass="pre">cleanup</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.cleanup"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.cleanup"title="Link to this definition">¶</a></dt>
<dd><p>This deletes all component attributes from the host’s db</p>
<emclass="property"><spanclass="k"><spanclass="pre">classmethod</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">load</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">host</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.load"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.load"title="Link to this definition">¶</a></dt>
<dd><dlclass="simple">
<dt>Loads a component instance</dt><dd><p>This is called whenever a component is loaded (ex: Server Restart)</p>
<spanclass="sig-name descname"><spanclass="pre">at_added</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">host</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.at_added"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.at_added"title="Link to this definition">¶</a></dt>
<dd><p>This is the method called when a component is registered on a host.</p>
<spanclass="sig-name descname"><spanclass="pre">at_removed</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">host</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.at_removed"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.at_removed"title="Link to this definition">¶</a></dt>
<dd><p>This is the method called when a component is removed from a host.</p>
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">attributes</span></span><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.attributes"title="Link to this definition">¶</a></dt>
<dd><p>Shortcut property returning the host’s AttributeHandler.</p>
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">pk</span></span><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.pk"title="Link to this definition">¶</a></dt>
<dd><p>Shortcut property returning the host’s primary key.</p>
<emclass="property"><spanclass="k"><spanclass="pre">property</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">nattributes</span></span><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.nattributes"title="Link to this definition">¶</a></dt>
<dd><p>Shortcut property returning the host’s In-Memory AttributeHandler (Non Persisted).</p>
<emclass="property"><spanclass="k"><spanclass="pre">classmethod</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">add_field</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">name</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">field</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.add_field"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.add_field"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">classmethod</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">get_fields</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.get_fields"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.get_fields"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="k"><spanclass="pre">classmethod</span></span><spanclass="w"></span></em><spanclass="sig-name descname"><spanclass="pre">get_component_slot</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.get_component_slot"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.get_component_slot"title="Link to this definition">¶</a></dt>