<spanid="evennia-contrib-custom-gametime"></span><h1>evennia.contrib.custom_gametime<aclass="headerlink"href="#module-evennia.contrib.custom_gametime"title="Permalink to this headline">¶</a></h1>
<p>Custom gametime</p>
<p>Contrib - Griatch 2017, vlgeoff 2017</p>
<p>This implements the evennia.utils.gametime module but supporting
a custom calendar for your game world. It allows for scheduling
events to happen at given in-game times, taking this custom
calendar into account.</p>
<p>Usage:</p>
<p>Use as the normal gametime module, that is by importing and using the
helper functions in this module in your own code. The calendar can be
customized by adding the <strong>TIME_UNITS</strong> dictionary to your settings
file. This maps unit names to their length, expressed in the smallest
unit. Here’s the default as an example:</p>
<blockquote>
<div><dlclass="simple">
<dt>TIME_UNITS = {</dt><dd><p>“sec”: 1,
“min”: 60,
“hr”: 60 * 60,
“hour”: 60 * 60,
“day”: 60 * 60 * 24,
“week”: 60 * 60 * 24 * 7,
“month”: 60 * 60 * 24 * 7 * 4,
“yr”: 60 * 60 * 24 * 7 * 4 * 12,
“year”: 60 * 60 * 24 * 7 * 4 * 12, }</p>
</dd>
</dl>
</div></blockquote>
<p>When using a custom calendar, these time unit names are used as kwargs to
<codeclass="sig-prename descclassname">evennia.contrib.custom_gametime.</code><codeclass="sig-name descname">time_to_tuple</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">seconds</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">divisors</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#time_to_tuple"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.time_to_tuple"title="Permalink to this definition">¶</a></dt>
<dt>This tuple has length len(<ahref="#id1"><spanclass="problematic"id="id2">*</span></a>args)+1, with the</dt><dd><p>last element being the last remaining seconds not evenly
<codeclass="sig-prename descclassname">evennia.contrib.custom_gametime.</code><codeclass="sig-name descname">gametime_to_realtime</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">format</span><spanclass="o">=</span><spanclass="default_value">False</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#gametime_to_realtime"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.gametime_to_realtime"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.contrib.custom_gametime.</code><codeclass="sig-name descname">custom_gametime</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">absolute</span><spanclass="o">=</span><spanclass="default_value">False</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#custom_gametime"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.custom_gametime"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.contrib.custom_gametime.</code><codeclass="sig-name descname">real_seconds_until</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#real_seconds_until"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.real_seconds_until"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-prename descclassname">evennia.contrib.custom_gametime.</code><codeclass="sig-name descname">schedule</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">callback</span></em>, <emclass="sig-param"><spanclass="n">repeat</span><spanclass="o">=</span><spanclass="default_value">False</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#schedule"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.schedule"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.contrib.custom_gametime.</code><codeclass="sig-name descname">GametimeScript</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#GametimeScript"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.GametimeScript"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_script_creation</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#GametimeScript.at_script_creation"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.GametimeScript.at_script_creation"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_repeat</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/contrib/custom_gametime.html#GametimeScript.at_repeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.contrib.custom_gametime.GametimeScript.at_repeat"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">DoesNotExist</code><aclass="headerlink"href="#evennia.contrib.custom_gametime.GametimeScript.DoesNotExist"title="Permalink to this definition">¶</a></dt>
<emclass="property">exception </em><codeclass="sig-name descname">MultipleObjectsReturned</code><aclass="headerlink"href="#evennia.contrib.custom_gametime.GametimeScript.MultipleObjectsReturned"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">path</code><emclass="property"> = 'evennia.contrib.custom_gametime.GametimeScript'</em><aclass="headerlink"href="#evennia.contrib.custom_gametime.GametimeScript.path"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">typename</code><emclass="property"> = 'GametimeScript'</em><aclass="headerlink"href="#evennia.contrib.custom_gametime.GametimeScript.typename"title="Permalink to this definition">¶</a></dt>