<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="Permalink to this headline">¶</a></h1>
<p>Components - ChrisLR 2022</p>
<p>This file contains the base class to inherit for creating new components.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.component.</code><codeclass="sig-name descname">Component</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">name</code><emclass="property"> = ''</em><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.name"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span><spanclass="o">=</span><spanclass="default_value">None</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<emclass="property">classmethod </em><codeclass="sig-name descname">default_create</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.default_create"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.default_create"title="Permalink 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>
</dd>
</dl>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>host</strong> (<em>object</em>) – The host typeclass instance</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>Component</em>– The created instance of the component</p>
<emclass="property">classmethod </em><codeclass="sig-name descname">create</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.create"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.create"title="Permalink to this definition">¶</a></dt>
<dd><p>This is the method to call when supplying kwargs to initialize a component.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>host</strong> (<em>object</em>) – The host typeclass instance</p></li>
<li><p><strong>**kwargs</strong>– Key-Value of default values to replace.
To persist the value, the key must correspond to a DBField.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>Component</em>– The created instance of the component</p>
<codeclass="sig-name descname">cleanup</code><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">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.cleanup"title="Permalink to this definition">¶</a></dt>
<dd><p>This deletes all component attributes from the host’s db</p>
<emclass="property">classmethod </em><codeclass="sig-name descname">load</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.load"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.load"title="Permalink 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>
</dd>
</dl>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>host</strong> (<em>object</em>) – The host typeclass instance</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p><em>Component</em>– The loaded instance of the component</p>
<codeclass="sig-name descname">at_added</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.at_added"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.at_added"title="Permalink to this definition">¶</a></dt>
<dd><p>This is the method called when a component is registered on a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>host</strong> (<em>object</em>) – The host typeclass instance</p>
<codeclass="sig-name descname">at_removed</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">host</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#Component.at_removed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.at_removed"title="Permalink to this definition">¶</a></dt>
<dd><p>This is the method called when a component is removed from a host.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>host</strong> (<em>object</em>) – The host typeclass instance</p>
<emclass="property">property </em><codeclass="sig-name descname">attributes</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.attributes"title="Permalink to this definition">¶</a></dt>
<dd><p>Shortcut property returning the host’s AttributeHandler.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>AttributeHandler</em>– The Host’s AttributeHandler</p>
<emclass="property">property </em><codeclass="sig-name descname">nattributes</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.nattributes"title="Permalink to this definition">¶</a></dt>
<dd><p>Shortcut property returning the host’s In-Memory AttributeHandler (Non Persisted).</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>AttributeHandler</em>– The Host’s In-Memory AttributeHandler</p>
<emclass="property">property </em><codeclass="sig-name descname">db_field_names</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.db_field_names"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">ndb_field_names</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.ndb_field_names"title="Permalink to this definition">¶</a></dt>
<emclass="property">property </em><codeclass="sig-name descname">tag_field_names</code><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.Component.tag_field_names"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-prename descclassname">evennia.contrib.base_systems.components.component.</code><codeclass="sig-name descname">ComponentRegisterError</code><aclass="reference internal"href="../_modules/evennia/contrib/base_systems/components/component.html#ComponentRegisterError"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.base_systems.components.component.ComponentRegisterError"title="Permalink to this definition">¶</a></dt>