evennia/docs/2.x/api/evennia.contrib.grid.wilderness.wilderness.html
Evennia docbuilder action e535f5782a Updated HTML docs.
2023-10-19 20:22:27 +00:00

797 lines
No EOL
56 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.contrib.grid.wilderness.wilderness &#8212; Evennia 2.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.contrib.grid.xyzgrid" href="evennia.contrib.grid.xyzgrid.html" />
<link rel="prev" title="evennia.contrib.grid.wilderness.tests" href="evennia.contrib.grid.wilderness.tests.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.grid.xyzgrid.html" title="evennia.contrib.grid.xyzgrid"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.grid.wilderness.tests.html" title="evennia.contrib.grid.wilderness.tests"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.grid.html" >evennia.contrib.grid</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.grid.wilderness.html" accesskey="U">evennia.contrib.grid.wilderness</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.wilderness.wilderness</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.grid.wilderness.wilderness</a><ul>
<li><a class="reference internal" href="#usage">Usage</a></li>
<li><a class="reference internal" href="#customisation">Customisation</a></li>
<li><a class="reference internal" href="#example">Example</a></li>
<li><a class="reference internal" href="#implementation-details">Implementation details</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.grid.wilderness.tests.html"
title="previous chapter">evennia.contrib.grid.wilderness.tests</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.grid.xyzgrid.html"
title="next chapter">evennia.contrib.grid.xyzgrid</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.grid.wilderness.wilderness.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li><a href="evennia.contrib.grid.wilderness.wilderness.html">2.x (main branch)</a></li>
<ul>
<li><a href="../1.3.0/index.html">1.3.0 (v1.3.0 branch)</a></li>
<li><a href="../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.grid.wilderness.wilderness">
<span id="evennia-contrib-grid-wilderness-wilderness"></span><h1>evennia.contrib.grid.wilderness.wilderness<a class="headerlink" href="#module-evennia.contrib.grid.wilderness.wilderness" title="Permalink to this headline"></a></h1>
<p>Wilderness system</p>
<p>Evennia contrib - titeuf87 2017</p>
<p>This contrib provides a wilderness map. This is an area that can be huge where
the rooms are mostly similar, except for some small cosmetic changes like the
room name.</p>
<section id="usage">
<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<p>This contrib does not provide any new commands. Instead the default <strong>py</strong> command
is used.</p>
<p>A wilderness map needs to created first. There can be different maps, all
with their own name. If no name is provided, then a default one is used. Internally,
the wilderness is stored as a Script with the name you specify. If you dont
specify the name, a script named “default” will be created and used.</p>
<blockquote>
<div><p>py from evennia.contrib.grid import wilderness; wilderness.create_wilderness()</p>
</div></blockquote>
<p>Once created, it is possible to move into that wilderness map:</p>
<blockquote>
<div><p>py from evennia.contrib.grid import wilderness; wilderness.enter_wilderness(me)</p>
</div></blockquote>
<p>All coordinates used by the wilderness map are in the format of <strong>(x, y)</strong>
tuples. x goes from left to right and y goes from bottom to top. So <strong>(0, 0)</strong>
is the bottom left corner of the map.</p>
</section>
<section id="customisation">
<h2>Customisation<a class="headerlink" href="#customisation" title="Permalink to this headline"></a></h2>
<p>The defaults, while useable, are meant to be customised. When creating a
new wilderness map it is possible to give a “map provider”: this is a
python object that is smart enough to create the map.</p>
<p>The default provider, <strong>WildernessMapProvider</strong>, creates a grid area that
is unlimited in size.</p>
<p><strong>WildernessMapProvider</strong> can be subclassed to create more interesting maps
and also to customize the room/exit typeclass used.</p>
<p>There is also no command that allows players to enter the wilderness. This
still needs to be added: it can be a command or an exit, depending on your
needs.</p>
</section>
<section id="example">
<h2>Example<a class="headerlink" href="#example" title="Permalink to this headline"></a></h2>
<blockquote>
<div><p>To give an example of how to customize, we will create a very simple (and
small) wilderness map that is shaped like a pyramid. The map will be
provided as a string: a “.” symbol is a location we can walk on.</p>
<p>Lets create a file world/pyramid.py:</p>
</div></blockquote>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">map_str</span> <span class="o">=</span> <span class="s1">&#39;&#39;&#39;</span>
<span class="s1"> .</span>
<span class="s1"> ...</span>
<span class="s1"> .....</span>
<span class="s1"> .......</span>
<span class="s1">&#39;&#39;&#39;</span>
<span class="kn">from</span> <span class="nn">evennia.contrib.grid</span> <span class="kn">import</span> <span class="n">wilderness</span>
<span class="k">class</span> <span class="nc">PyramidMapProvider</span><span class="p">(</span><span class="n">wilderness</span><span class="o">.</span><span class="n">WildernessMapProvider</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">is_valid_coordinates</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wilderness</span><span class="p">,</span> <span class="n">coordinates</span><span class="p">):</span>
<span class="s2">&quot;Validates if these coordinates are inside the map&quot;</span>
<span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">coordinates</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">lines</span> <span class="o">=</span> <span class="n">map_str</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;</span>
<span class="s2">&quot;)</span>
<span class="c1"># The reverse is needed because otherwise the pyramid will be</span>
<span class="c1"># upside down</span>
<span class="n">lines</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span>
<span class="n">line</span> <span class="o">=</span> <span class="n">lines</span><span class="p">[</span><span class="n">y</span><span class="p">]</span>
<span class="n">column</span> <span class="o">=</span> <span class="n">line</span><span class="p">[</span><span class="n">x</span><span class="p">]</span>
<span class="k">return</span> <span class="n">column</span> <span class="o">==</span> <span class="s2">&quot;.&quot;</span>
<span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">def</span> <span class="nf">get_location_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coordinates</span><span class="p">):</span>
<span class="s2">&quot;Set the location name&quot;</span>
<span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">coordinates</span>
<span class="k">if</span> <span class="n">y</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
<span class="k">return</span> <span class="s2">&quot;Atop the pyramid.&quot;</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="s2">&quot;Inside a pyramid.&quot;</span>
<span class="k">def</span> <span class="nf">at_prepare_room</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coordinates</span><span class="p">,</span> <span class="n">caller</span><span class="p">,</span> <span class="n">room</span><span class="p">):</span>
<span class="s2">&quot;Any other changes done to the room before showing it&quot;</span>
<span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">coordinates</span>
<span class="n">desc</span> <span class="o">=</span> <span class="s2">&quot;This is a room in the pyramid.&quot;</span>
<span class="k">if</span> <span class="n">y</span> <span class="o">==</span> <span class="mi">3</span> <span class="p">:</span>
<span class="n">desc</span> <span class="o">=</span> <span class="s2">&quot;You can see far and wide from the top of the pyramid.&quot;</span>
<span class="n">room</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">active_desc</span> <span class="o">=</span> <span class="n">desc</span>
</pre></div>
</div>
<p>Note that the currently active description is stored as <strong>.ndb.active_desc</strong>. When
looking at the room, this is what will be pulled and shown.</p>
<p>&gt; Exits on a room are always present, but locks hide those not used for a
&gt; location. So make sure to <strong>quell</strong> if you are a superuser (since the superuser ignores
&gt; locks, those exits will otherwise not be hidden)</p>
<p>Now we can use our new pyramid-shaped wilderness map. From inside Evennia we
create a new wilderness (with the name “default”) but using our new map provider:</p>
<blockquote>
<div><p>py from world import pyramid as p; p.wilderness.create_wilderness(mapprovider=p.PyramidMapProvider())
py from evennia.contrib import wilderness; wilderness.enter_wilderness(me, coordinates=(4, 1))</p>
</div></blockquote>
</section>
<section id="implementation-details">
<h2>Implementation details<a class="headerlink" href="#implementation-details" title="Permalink to this headline"></a></h2>
<blockquote>
<div><p>When a character moves into the wilderness, they get their own room. If
they move, instead of moving the character, the room changes to match the
new coordinates.</p>
<p>If a character meets another character in the wilderness, then their room
merges. When one of the character leaves again, they each get their own
separate rooms.</p>
<p>Rooms are created as needed. Unneeded rooms are stored away to avoid the
overhead cost of creating new rooms again in the future.</p>
</div></blockquote>
<dl class="py function">
<dt id="evennia.contrib.grid.wilderness.wilderness.create_wilderness">
<code class="sig-prename descclassname">evennia.contrib.grid.wilderness.wilderness.</code><code class="sig-name descname">create_wilderness</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span><span class="o">=</span><span class="default_value">'default'</span></em>, <em class="sig-param"><span class="n">mapprovider</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">preserve_items</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#create_wilderness"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.create_wilderness" title="Permalink to this definition"></a></dt>
<dd><p>Creates a new wilderness map. Does nothing if a wilderness map already
exists with the same name.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) the name to use for that wilderness map</p></li>
<li><p><strong>mapprovider</strong> (<em>WildernessMap instance</em><em>, </em><em>optional</em>) an instance of a
WildernessMap class (or subclass) that will be used to provide the
layout of this wilderness map. If none is provided, the default
infinite grid map will be used.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.grid.wilderness.wilderness.enter_wilderness">
<code class="sig-prename descclassname">evennia.contrib.grid.wilderness.wilderness.</code><code class="sig-name descname">enter_wilderness</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em>, <em class="sig-param"><span class="n">coordinates</span><span class="o">=</span><span class="default_value">0, 0</span></em>, <em class="sig-param"><span class="n">name</span><span class="o">=</span><span class="default_value">'default'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#enter_wilderness"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.enter_wilderness" title="Permalink to this definition"></a></dt>
<dd><p>Moves obj into the wilderness. The wilderness needs to exist first and the
provided coordinates needs to be valid inside that wilderness.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> (<em>object</em>) the object to move into the wilderness</p></li>
<li><p><strong>coordinates</strong> (<em>tuple</em><em>)</em><em>, </em><em>optional</em>) the coordinates to move obj to into
the wilderness. If not provided, defaults (0, 0)</p></li>
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) name of the wilderness map, if not using the
default one</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> True if obj successfully moved into the wilderness.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.contrib.grid.wilderness.wilderness.get_new_coordinates">
<code class="sig-prename descclassname">evennia.contrib.grid.wilderness.wilderness.</code><code class="sig-name descname">get_new_coordinates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">coordinates</span></em>, <em class="sig-param"><span class="n">direction</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#get_new_coordinates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.get_new_coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Returns the coordinates of direction applied to the provided coordinates.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>coordinates</strong> tuple of (x, y)</p></li>
<li><p><strong>direction</strong> a direction string (like “northeast”)</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>tuple</em> tuple of (x, y) coordinates</p>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.grid.wilderness.wilderness.</code><code class="sig-name descname">WildernessScript</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript" title="evennia.scripts.scripts.DefaultScript"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DefaultScript</span></code></a></p>
<p>This is the main “handler” for the wilderness system: inside here the
coordinates of every item currently inside the wilderness is stored. This
script is responsible for creating rooms as needed and storing rooms away
into storage when they are not needed anymore.</p>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.mapprovider">
<code class="sig-name descname">mapprovider</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.mapprovider" title="Permalink to this definition"></a></dt>
<dd><p>AttributeProperty.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.itemcoordinates">
<code class="sig-name descname">itemcoordinates</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.itemcoordinates" title="Permalink to this definition"></a></dt>
<dd><p>AttributeProperty.</p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.preserve_items">
<code class="sig-name descname">preserve_items</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.preserve_items" title="Permalink to this definition"></a></dt>
<dd><p>AttributeProperty.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.at_script_creation">
<code class="sig-name descname">at_script_creation</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript.at_script_creation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.at_script_creation" title="Permalink to this definition"></a></dt>
<dd><p>Only called once, when the script is created. This is a default Evennia
hook.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.at_server_start">
<code class="sig-name descname">at_server_start</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript.at_server_start"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.at_server_start" title="Permalink to this definition"></a></dt>
<dd><p>Called after the server is started or reloaded.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.is_valid_coordinates">
<code class="sig-name descname">is_valid_coordinates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">coordinates</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript.is_valid_coordinates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.is_valid_coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Returns True if coordinates are valid (and can be travelled to).
Otherwise returns False</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>coordinates</strong> (<em>tuple</em>) coordinates as (x, y) tuple</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> True if the coordinates are valid</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.get_obj_coordinates">
<code class="sig-name descname">get_obj_coordinates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript.get_obj_coordinates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.get_obj_coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Returns the coordinates of obj in the wilderness.</p>
<p>Returns (x, y)</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>object</em>) an object inside the wilderness</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>tuple</em> (x, y) tuple of where obj is located</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.get_objs_at_coordinates">
<code class="sig-name descname">get_objs_at_coordinates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">coordinates</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript.get_objs_at_coordinates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.get_objs_at_coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Returns a list of every object at certain coordinates.</p>
<p>Imeplementation detail: this uses a naive iteration through every
object inside the wilderness which could cause slow downs when there
are a lot of objects in the map.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>coordinates</strong> (<em>tuple</em>) a coordinate tuple like (x, y)</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>[Object, ]</em> list of Objects at coordinates</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.move_obj">
<code class="sig-name descname">move_obj</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em>, <em class="sig-param"><span class="n">new_coordinates</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript.move_obj"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.move_obj" title="Permalink to this definition"></a></dt>
<dd><p>Moves obj to new coordinates in this wilderness.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>obj</strong> (<em>object</em>) the object to move</p></li>
<li><p><strong>new_coordinates</strong> (<em>tuple</em>) tuple of (x, y) where to move obj to.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.at_post_object_leave">
<code class="sig-name descname">at_post_object_leave</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessScript.at_post_object_leave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.at_post_object_leave" title="Permalink to this definition"></a></dt>
<dd><p>Called after an object left this wilderness map. Used for cleaning up.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>obj</strong> (<em>object</em>) the object that left</p>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript.DoesNotExist" title="evennia.scripts.scripts.DefaultScript.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DefaultScript.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.scripts.scripts.html#evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned" title="evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.scripts.scripts.DefaultScript.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.grid.wilderness.wilderness.WildernessScript'</em><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessScript.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'WildernessScript'</em><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessScript.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.grid.wilderness.wilderness.</code><code class="sig-name descname">WildernessRoom</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessRoom"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultRoom" title="evennia.objects.objects.DefaultRoom"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultRoom</span></code></a></p>
<p>This is a single room inside the wilderness. This room provides a “view”
into the wilderness map. When an account moves around, instead of going to
another room as with traditional rooms, they stay in the same room but the
room itself changes to display another area of the wilderness.</p>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.wilderness">
<em class="property">property </em><code class="sig-name descname">wilderness</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.wilderness" title="Permalink to this definition"></a></dt>
<dd><p>Shortcut property to the wilderness script this room belongs to.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>WildernessScript</em> the WildernessScript attached to this room</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.location_name">
<em class="property">property </em><code class="sig-name descname">location_name</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.location_name" title="Permalink to this definition"></a></dt>
<dd><p>Returns the name of the wilderness at this rooms coordinates.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>name (str)</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.coordinates">
<em class="property">property </em><code class="sig-name descname">coordinates</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Returns the coordinates of this room into the wilderness.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>tuple</em> </p>
<dl class="simple">
<dt>(x, y) coordinates of where this room is inside the</dt><dd><p>wilderness.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.at_object_receive">
<code class="sig-name descname">at_object_receive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">moved_obj</span></em>, <em class="sig-param"><span class="n">source_location</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessRoom.at_object_receive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.at_object_receive" title="Permalink to this definition"></a></dt>
<dd><p>Called after an object has been moved into this object. This is a
default Evennia hook.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>moved_obj</strong> (<em>Object</em>) The object moved into this one.</p></li>
<li><p><strong>source_location</strong> (<em>Object</em>) Where <strong>moved_obj</strong> came from.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.at_object_leave">
<code class="sig-name descname">at_object_leave</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">moved_obj</span></em>, <em class="sig-param"><span class="n">target_location</span></em>, <em class="sig-param"><span class="n">move_type</span><span class="o">=</span><span class="default_value">'move'</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessRoom.at_object_leave"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.at_object_leave" title="Permalink to this definition"></a></dt>
<dd><p>Called just before an object leaves from inside this object. This is a
default Evennia hook.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>moved_obj</strong> (<em>Object</em>) The object leaving</p></li>
<li><p><strong>target_location</strong> (<em>Object</em>) Where <strong>moved_obj</strong> is going.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.set_active_coordinates">
<code class="sig-name descname">set_active_coordinates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">new_coordinates</span></em>, <em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessRoom.set_active_coordinates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.set_active_coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Changes this room to show the wilderness map from other coordinates.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>new_coordinates</strong> (<em>tuple</em>) coordinates as tuple of (x, y)</p></li>
<li><p><strong>obj</strong> (<em>Object</em>) the object that moved into this room and caused the
coordinates to change</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.get_display_name">
<code class="sig-name descname">get_display_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessRoom.get_display_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.get_display_name" title="Permalink to this definition"></a></dt>
<dd><p>Displays the name of the object in a viewer-aware manner.
This is a core evennia hook.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>looker</strong> (<a class="reference internal" href="evennia.typeclasses.models.html#evennia.typeclasses.models.TypedObject" title="evennia.typeclasses.models.TypedObject"><em>TypedObject</em></a>) The object or account that is looking
at/getting inforamtion for this object.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>name (str)</em> </p>
<dl class="simple">
<dt>A string containing the name of the object,</dt><dd><p>including the DBREF if this user is privileged to control
said object and also its coordinates into the wilderness map.</p>
</dd>
</dl>
</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This function could be extended to change how object names
appear to users in character, but be wary. This function
does not change an objects keys or aliases when
searching, and is expected to produce something useful for
builders.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.get_display_desc">
<code class="sig-name descname">get_display_desc</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">looker</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessRoom.get_display_desc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.get_display_desc" title="Permalink to this definition"></a></dt>
<dd><p>Displays the description of the room. This is a core evennia hook.</p>
<p>Allows the rooms description to be customized in an ndb value,
avoiding having to write to the database on moving.</p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultRoom.DoesNotExist" title="evennia.objects.objects.DefaultRoom.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultRoom.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultRoom.MultipleObjectsReturned" title="evennia.objects.objects.DefaultRoom.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultRoom.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.grid.wilderness.wilderness.WildernessRoom'</em><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessRoom.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'WildernessRoom'</em><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.grid.wilderness.wilderness.</code><code class="sig-name descname">WildernessExit</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessExit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultExit" title="evennia.objects.objects.DefaultExit"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultExit</span></code></a></p>
<p>This is an Exit object used inside a WildernessRoom. Instead of changing
the location of an Object traversing through it (like a traditional exit
would do) it changes the coordinates of that traversing Object inside
the wilderness map.</p>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.wilderness">
<em class="property">property </em><code class="sig-name descname">wilderness</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.wilderness" title="Permalink to this definition"></a></dt>
<dd><p>Shortcut property to the wilderness script.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>WildernessScript</em> the WildernessScript attached to this exits room</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.mapprovider">
<em class="property">property </em><code class="sig-name descname">mapprovider</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.mapprovider" title="Permalink to this definition"></a></dt>
<dd><p>Shortcut property to the map provider.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><p><em>MapProvider object</em> </p>
<dl class="simple">
<dt>the mapprovider object used with this</dt><dd><p>wilderness map.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.at_traverse_coordinates">
<code class="sig-name descname">at_traverse_coordinates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="n">current_coordinates</span></em>, <em class="sig-param"><span class="n">new_coordinates</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessExit.at_traverse_coordinates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.at_traverse_coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Called when an object wants to travel from one place inside the
wilderness to another place inside the wilderness.</p>
<p>If this returns True, then the traversing can happen. Otherwise it will
be blocked.</p>
<p>This method is similar how the <strong>at_traverse</strong> works on normal exits.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<em>Object</em>) The object doing the travelling.</p></li>
<li><p><strong>current_coordinates</strong> (<em>tuple</em>) (x, y) coordinates where
<strong>traversing_object</strong> currently is.</p></li>
<li><p><strong>new_coordinates</strong> (<em>tuple</em>) (x, y) coordinates of where
<strong>traversing_object</strong> wants to travel to.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> True if traversing_object is allowed to traverse</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.at_traverse">
<code class="sig-name descname">at_traverse</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">traversing_object</span></em>, <em class="sig-param"><span class="n">target_location</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessExit.at_traverse"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.at_traverse" title="Permalink to this definition"></a></dt>
<dd><p>This implements the actual traversal. The traverse lock has
already been checked (in the Exit command) at this point.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>traversing_object</strong> (<em>Object</em>) Object traversing us.</p></li>
<li><p><strong>target_location</strong> (<em>Object</em>) Where target is going.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> True if the traverse is allowed to happen</p>
</dd>
</dl>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.DoesNotExist">
<em class="property">exception </em><code class="sig-name descname">DoesNotExist</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.DoesNotExist" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultExit.DoesNotExist" title="evennia.objects.objects.DefaultExit.DoesNotExist"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultExit.DoesNotExist</span></code></a></p>
</dd></dl>
<dl class="py exception">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.MultipleObjectsReturned">
<em class="property">exception </em><code class="sig-name descname">MultipleObjectsReturned</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.MultipleObjectsReturned" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.objects.objects.html#evennia.objects.objects.DefaultExit.MultipleObjectsReturned" title="evennia.objects.objects.DefaultExit.MultipleObjectsReturned"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.objects.objects.DefaultExit.MultipleObjectsReturned</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.path">
<code class="sig-name descname">path</code><em class="property"> = 'evennia.contrib.grid.wilderness.wilderness.WildernessExit'</em><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessExit.typename">
<code class="sig-name descname">typename</code><em class="property"> = 'WildernessExit'</em><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit.typename" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider">
<em class="property">class </em><code class="sig-prename descclassname">evennia.contrib.grid.wilderness.wilderness.</code><code class="sig-name descname">WildernessMapProvider</code><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessMapProvider"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Default Wilderness Map provider.</p>
<p>This is a simple provider that just creates an infinite large grid area.</p>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.room_typeclass">
<code class="sig-name descname">room_typeclass</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.room_typeclass" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom" title="evennia.contrib.grid.wilderness.wilderness.WildernessRoom"><code class="xref py py-class docutils literal notranslate"><span class="pre">WildernessRoom</span></code></a></p>
</dd></dl>
<dl class="py attribute">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.exit_typeclass">
<code class="sig-name descname">exit_typeclass</code><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.exit_typeclass" title="Permalink to this definition"></a></dt>
<dd><p>alias of <a class="reference internal" href="#evennia.contrib.grid.wilderness.wilderness.WildernessExit" title="evennia.contrib.grid.wilderness.wilderness.WildernessExit"><code class="xref py py-class docutils literal notranslate"><span class="pre">WildernessExit</span></code></a></p>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.is_valid_coordinates">
<code class="sig-name descname">is_valid_coordinates</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">wilderness</span></em>, <em class="sig-param"><span class="n">coordinates</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessMapProvider.is_valid_coordinates"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.is_valid_coordinates" title="Permalink to this definition"></a></dt>
<dd><p>Returns True if coordinates is valid and can be walked to.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>wilderness</strong> the wilderness script</p></li>
<li><p><strong>coordinates</strong> (<em>tuple</em>) the coordinates to check as (x, y) tuple.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> True if the coordinates are valid</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.get_location_name">
<code class="sig-name descname">get_location_name</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">coordinates</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessMapProvider.get_location_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.get_location_name" title="Permalink to this definition"></a></dt>
<dd><p>Returns a name for the position at coordinates.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>coordinates</strong> (<em>tuple</em>) the coordinates as (x, y) tuple.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>name (str)</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.at_prepare_room">
<code class="sig-name descname">at_prepare_room</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">coordinates</span></em>, <em class="sig-param"><span class="n">caller</span></em>, <em class="sig-param"><span class="n">room</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/grid/wilderness/wilderness.html#WildernessMapProvider.at_prepare_room"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.contrib.grid.wilderness.wilderness.WildernessMapProvider.at_prepare_room" title="Permalink to this definition"></a></dt>
<dd><p>Called when a room gets activated for certain coordinates. This happens
after every object is moved in it.
This can be used to set a custom room desc for instance or run other
customisations on the room.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>coordinates</strong> (<em>tuple</em>) the coordinates as (x, y) where room is
located at</p></li>
<li><p><strong>caller</strong> (<em>Object</em>) the object that moved into this room</p></li>
<li><p><strong>room</strong> (<a class="reference internal" href="#evennia.contrib.grid.wilderness.wilderness.WildernessRoom" title="evennia.contrib.grid.wilderness.wilderness.WildernessRoom"><em>WildernessRoom</em></a>) the room object that will be used at that
wilderness location</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Example</p>
<p>An example use of this would to plug in a randomizer to show different
descriptions for different coordinates, or place a treasure at a special
coordinate.</p>
</dd></dl>
</dd></dl>
</section>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.contrib.grid.xyzgrid.html" title="evennia.contrib.grid.xyzgrid"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.grid.wilderness.tests.html" title="evennia.contrib.grid.wilderness.tests"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.grid.html" >evennia.contrib.grid</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.grid.wilderness.html" >evennia.contrib.grid.wilderness</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.wilderness.wilderness</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>