mirror of
https://github.com/evennia/evennia.git
synced 2026-04-05 07:27:17 +02:00
Updated HTML docs
This commit is contained in:
parent
3aaf366163
commit
89ca242330
1696 changed files with 286 additions and 282242 deletions
|
|
@ -348,7 +348,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="conf.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1280,7 +1280,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="related_descriptors.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -278,7 +278,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="manager.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -2089,7 +2089,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="query.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -421,7 +421,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="query_utils.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -498,7 +498,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="functional.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -507,7 +507,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="evennia.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1883,7 +1883,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="accounts.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -656,7 +656,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="bots.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -373,7 +373,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="manager.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -258,7 +258,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="models.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -856,7 +856,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdhandler.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -302,7 +302,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdparser.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -752,7 +752,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdset.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -742,7 +742,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdsethandler.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -820,7 +820,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="command.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1131,7 +1131,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="account.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -681,7 +681,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="admin.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -897,7 +897,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="batchprocess.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4377,7 +4377,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="building.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -153,7 +153,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdset_account.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -168,7 +168,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdset_character.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdset_session.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -103,7 +103,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cmdset_unloggedin.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1940,7 +1940,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="comms.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -815,7 +815,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="general.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1057,7 +1057,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="help.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -346,7 +346,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="muxcommand.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -181,7 +181,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="syscommands.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1231,7 +1231,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="system.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -2093,7 +2093,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -590,7 +590,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="unloggedin.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -931,7 +931,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="comms.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -580,7 +580,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="managers.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -789,7 +789,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="models.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -684,7 +684,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1346,7 +1346,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="building_menu.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -253,7 +253,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -142,7 +142,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -406,7 +406,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="custom_gametime.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -130,7 +130,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -441,7 +441,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="email_login.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -301,7 +301,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="callbackhandler.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -658,7 +658,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="commands.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -167,7 +167,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="eventfuncs.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -745,7 +745,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="scripts.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -619,7 +619,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -336,7 +336,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="utils.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -621,7 +621,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="mux_comms_cmds.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -162,7 +162,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -126,7 +126,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -374,7 +374,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="unixcommand.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -857,7 +857,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="commands.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -430,7 +430,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="menu.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1157,7 +1157,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="objects.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -316,7 +316,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="room.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -107,7 +107,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="scripts.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -384,7 +384,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="state.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -381,7 +381,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -271,7 +271,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="utils.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -975,7 +975,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="barter.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -223,7 +223,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -820,7 +820,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="clothing.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -209,7 +209,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -284,7 +284,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="cooldowns.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -223,7 +223,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1145,7 +1145,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="crafting.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -607,7 +607,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="example_recipes.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -765,7 +765,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -235,7 +235,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="gendersub.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -104,7 +104,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -436,7 +436,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="mail.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -123,7 +123,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -345,7 +345,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="multidescer.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -894,7 +894,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="puzzles.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1051,7 +1051,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -858,7 +858,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tb_basic.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1214,7 +1214,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tb_equip.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1533,7 +1533,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tb_items.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1455,7 +1455,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tb_magic.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1511,7 +1511,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tb_range.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -679,7 +679,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -669,7 +669,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="extended_room.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -179,7 +179,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -270,7 +270,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="simpledoor.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -105,7 +105,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -250,7 +250,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="slow_exit.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -103,7 +103,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -213,7 +213,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="tests.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -850,7 +850,6 @@
|
|||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="wilderness.html">1.0-dev (develop branch)</a></li>
|
||||
<li><a href="../../../../../../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,581 +0,0 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>evennia.contrib.grid.xyzgrid.commands — Evennia 1.0-dev 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>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</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" />
|
||||
</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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" accesskey="U">evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.commands</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for evennia.contrib.grid.xyzgrid.commands</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
|
||||
<span class="sd">XYZ-aware commands</span>
|
||||
|
||||
<span class="sd">Just add the XYZGridCmdSet to the default character cmdset to override</span>
|
||||
<span class="sd">the commands with XYZ-aware equivalents.</span>
|
||||
|
||||
<span class="sd">"""</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">namedtuple</span>
|
||||
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">InterruptCommand</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia</span> <span class="kn">import</span> <span class="n">default_cmds</span><span class="p">,</span> <span class="n">CmdSet</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.commands.default</span> <span class="kn">import</span> <span class="n">building</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.contrib.grid.xyzgrid.xyzroom</span> <span class="kn">import</span> <span class="n">XYZRoom</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.contrib.grid.xyzgrid.xyzgrid</span> <span class="kn">import</span> <span class="n">get_xyzgrid</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">ansi</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">list_to_string</span><span class="p">,</span> <span class="n">class_from_module</span><span class="p">,</span> <span class="n">delay</span>
|
||||
|
||||
<span class="n">COMMAND_DEFAULT_CLASS</span> <span class="o">=</span> <span class="n">class_from_module</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">COMMAND_DEFAULT_CLASS</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="c1"># temporary store of goto/path data when using the auto-stepper</span>
|
||||
<span class="n">PathData</span> <span class="o">=</span> <span class="n">namedtuple</span><span class="p">(</span><span class="s2">"PathData"</span><span class="p">,</span> <span class="p">(</span><span class="s2">"target"</span><span class="p">,</span> <span class="s2">"xymap"</span><span class="p">,</span> <span class="s2">"directions"</span><span class="p">,</span> <span class="s2">"step_sequence"</span><span class="p">,</span> <span class="s2">"task"</span><span class="p">))</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="CmdXYZTeleport"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdXYZTeleport">[docs]</a><span class="k">class</span> <span class="nc">CmdXYZTeleport</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdTeleport</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> teleport object to another location</span>
|
||||
|
||||
<span class="sd"> Usage:</span>
|
||||
<span class="sd"> tel/switch [<object> to||=] <target location></span>
|
||||
<span class="sd"> tel/switch [<object> to||=] (X,Y[,Z])</span>
|
||||
|
||||
<span class="sd"> Examples:</span>
|
||||
<span class="sd"> tel Limbo</span>
|
||||
<span class="sd"> tel/quiet box = Limbo</span>
|
||||
<span class="sd"> tel/tonone box</span>
|
||||
<span class="sd"> tel (3, 3, the small cave)</span>
|
||||
<span class="sd"> tel (4, 1) # on the same map</span>
|
||||
<span class="sd"> tel/map Z|mapname</span>
|
||||
|
||||
<span class="sd"> Switches:</span>
|
||||
<span class="sd"> quiet - don't echo leave/arrive messages to the source/target</span>
|
||||
<span class="sd"> locations for the move.</span>
|
||||
<span class="sd"> intoexit - if target is an exit, teleport INTO</span>
|
||||
<span class="sd"> the exit object instead of to its destination</span>
|
||||
<span class="sd"> tonone - if set, teleport the object to a None-location. If this</span>
|
||||
<span class="sd"> switch is set, <target location> is ignored.</span>
|
||||
<span class="sd"> Note that the only way to retrieve</span>
|
||||
<span class="sd"> an object from a None location is by direct #dbref</span>
|
||||
<span class="sd"> reference. A puppeted object cannot be moved to None.</span>
|
||||
<span class="sd"> loc - teleport object to the target's location instead of its contents</span>
|
||||
<span class="sd"> map - show coordinate map of given Zcoord/mapname.</span>
|
||||
|
||||
<span class="sd"> Teleports an object somewhere. If no object is given, you yourself are</span>
|
||||
<span class="sd"> teleported to the target location. If (X,Y) or (X,Y,Z) coordinates</span>
|
||||
<span class="sd"> are given, the target is a location on the XYZGrid.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span> <span class="nf">_search_by_xyz</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inp</span><span class="p">):</span>
|
||||
<span class="n">inp</span> <span class="o">=</span> <span class="n">inp</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"()"</span><span class="p">)</span>
|
||||
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="o">*</span><span class="n">Z</span> <span class="o">=</span> <span class="n">inp</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">Z</span><span class="p">:</span>
|
||||
<span class="c1"># Z was specified</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="n">Z</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># use current location's Z, if it exists</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">xyz</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">xyz</span>
|
||||
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Z-coordinate is also required since you are not currently "</span>
|
||||
<span class="s2">"in a room with a Z coordinate of its own."</span><span class="p">)</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="n">xyz</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="c1"># search by coordinate</span>
|
||||
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">X</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="nb">str</span><span class="p">(</span><span class="n">Y</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="nb">str</span><span class="p">(</span><span class="n">Z</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get_xyz</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">))</span>
|
||||
<span class="k">except</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">DoesNotExist</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Found no target XYZRoom at (</span><span class="si">{</span><span class="n">X</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">Y</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">Z</span><span class="si">}</span><span class="s2">)."</span><span class="p">)</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
|
||||
<div class="viewcode-block" id="CmdXYZTeleport.parse"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdXYZTeleport.parse">[docs]</a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="n">default_cmds</span><span class="o">.</span><span class="n">MuxCommand</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">obj_to_teleport</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">rhs</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">obj_to_teleport</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lhs</span><span class="p">,</span> <span class="n">global_search</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">obj_to_teleport</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Did not find object to teleport."</span><span class="p">)</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
<span class="k">if</span> <span class="nb">all</span><span class="p">(</span><span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">rhs</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">,</span> <span class="s2">","</span><span class="p">)):</span>
|
||||
<span class="c1"># search by (X,Y) or (X,Y,Z)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_search_by_xyz</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rhs</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># fallback to regular search by name/alias</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rhs</span><span class="p">,</span> <span class="n">global_search</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="nb">all</span><span class="p">(</span><span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">,</span> <span class="s2">","</span><span class="p">)):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_search_by_xyz</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lhs</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lhs</span><span class="p">,</span> <span class="n">global_search</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="CmdXYZOpen"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdXYZOpen">[docs]</a><span class="k">class</span> <span class="nc">CmdXYZOpen</span><span class="p">(</span><span class="n">building</span><span class="o">.</span><span class="n">CmdOpen</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> open a new exit from the current room</span>
|
||||
|
||||
<span class="sd"> Usage:</span>
|
||||
<span class="sd"> open <new exit>[;alias;..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = <destination></span>
|
||||
<span class="sd"> open <new exit>[;alias;..][:typeclass] [,<return exit>[;alias;..][:typeclass]]] = (X,Y,Z)</span>
|
||||
|
||||
<span class="sd"> Handles the creation of exits. If a destination is given, the exit</span>
|
||||
<span class="sd"> will point there. The destination can also be given as an (X,Y,Z) coordinate on the</span>
|
||||
<span class="sd"> XYZGrid - this command is used to link non-grid rooms to the grid and vice-versa.</span>
|
||||
|
||||
<span class="sd"> The <return exit> argument sets up an exit at the destination leading back to the current room.</span>
|
||||
<span class="sd"> Apart from (X,Y,Z) coordinate, destination name can be given both as a #dbref and a name, if</span>
|
||||
<span class="sd"> that name is globally unique.</span>
|
||||
|
||||
<span class="sd"> Examples:</span>
|
||||
<span class="sd"> open kitchen = Kitchen</span>
|
||||
<span class="sd"> open north, south = Town Center</span>
|
||||
<span class="sd"> open cave mouth;cave = (3, 4, the small cave)</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<div class="viewcode-block" id="CmdXYZOpen.parse"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdXYZOpen.parse">[docs]</a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="n">building</span><span class="o">.</span><span class="n">ObjManipCommand</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="ow">or</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">rhs</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Usage: open <new exit>[;alias...][:typeclass]"</span>
|
||||
<span class="s2">"[,<return exit>[;alias..][:typeclass]]] "</span>
|
||||
<span class="s2">"= <destination or (X,Y,Z)>"</span><span class="p">)</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">location</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"You cannot create an exit from a None-location."</span><span class="p">)</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">all</span><span class="p">(</span><span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">rhs</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">,</span> <span class="s2">","</span><span class="p">)):</span>
|
||||
<span class="c1"># search by (X,Y) or (X,Y,Z)</span>
|
||||
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="o">*</span><span class="n">Z</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rhs</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">Z</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"A full (X,Y,Z) coordinate must be given for the destination."</span><span class="p">)</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="n">Z</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="c1"># search by coordinate</span>
|
||||
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">X</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="nb">str</span><span class="p">(</span><span class="n">Y</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="nb">str</span><span class="p">(</span><span class="n">Z</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get_xyz</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">))</span>
|
||||
<span class="k">except</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">DoesNotExist</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Found no target XYZRoom at (</span><span class="si">{X}</span><span class="s2">,</span><span class="si">{Y}</span><span class="s2">,</span><span class="si">{Y}</span><span class="s2">)."</span><span class="p">)</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># regular search query</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rhs</span><span class="p">,</span> <span class="n">global_search</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">destination</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="n">InterruptCommand</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">exit_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs_objs</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"name"</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">exit_aliases</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs_objs</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"aliases"</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">exit_typeclass</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lhs_objs</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"option"</span><span class="p">]</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="CmdGoto"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdGoto">[docs]</a><span class="k">class</span> <span class="nc">CmdGoto</span><span class="p">(</span><span class="n">COMMAND_DEFAULT_CLASS</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Go to a named location in this area via the shortest path.</span>
|
||||
|
||||
<span class="sd"> Usage:</span>
|
||||
<span class="sd"> path <location> - find shortest path to target location (don't move)</span>
|
||||
<span class="sd"> goto <location> - auto-move to target location, using shortest path</span>
|
||||
<span class="sd"> path - show current target location and shortest path</span>
|
||||
<span class="sd"> goto - abort current goto, otherwise show current path</span>
|
||||
<span class="sd"> path clear - clear current path</span>
|
||||
|
||||
<span class="sd"> Finds the shortest route to a location in your current area and</span>
|
||||
<span class="sd"> can then automatically walk you there.</span>
|
||||
|
||||
<span class="sd"> Builders can optionally specify a specific grid coordinate (X,Y) to go to.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">key</span> <span class="o">=</span> <span class="s2">"goto"</span>
|
||||
<span class="n">aliases</span> <span class="o">=</span> <span class="s2">"path"</span>
|
||||
<span class="n">help_category</span> <span class="o">=</span> <span class="s2">"General"</span>
|
||||
<span class="n">locks</span> <span class="o">=</span> <span class="s2">"cmd:all()"</span>
|
||||
|
||||
<span class="c1"># how quickly to step (seconds)</span>
|
||||
<span class="n">auto_step_delay</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">default_xyz_path_interrupt_msg</span> <span class="o">=</span> <span class="s2">"Pathfinding interrupted here."</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_search_by_xyz</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inp</span><span class="p">,</span> <span class="n">xyz_start</span><span class="p">):</span>
|
||||
<span class="n">inp</span> <span class="o">=</span> <span class="n">inp</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"()"</span><span class="p">)</span>
|
||||
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span> <span class="o">=</span> <span class="n">inp</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="n">xyz_start</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="c1"># search by coordinate</span>
|
||||
<span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">X</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="nb">str</span><span class="p">(</span><span class="n">Y</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="nb">str</span><span class="p">(</span><span class="n">Z</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get_xyz</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">,</span> <span class="n">Z</span><span class="p">))</span>
|
||||
<span class="k">except</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">DoesNotExist</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Could not find a room at (</span><span class="si">{</span><span class="n">X</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">Y</span><span class="si">}</span><span class="s2">) (Z=</span><span class="si">{</span><span class="n">Z</span><span class="si">}</span><span class="s2">)."</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="kc">None</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_search_by_key_and_alias</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inp</span><span class="p">,</span> <span class="n">xyz_start</span><span class="p">):</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="n">xyz_start</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="n">candidates</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">XYZRoom</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter_xyz</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="p">(</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">,</span> <span class="n">Z</span><span class="p">)))</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">inp</span><span class="p">,</span> <span class="n">candidates</span><span class="o">=</span><span class="n">candidates</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_auto_step</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">caller</span><span class="p">,</span> <span class="n">session</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">xymap</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">directions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">step_sequence</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||||
|
||||
<span class="n">path_data</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">target</span><span class="p">:</span>
|
||||
<span class="c1"># start/replace an old path if we provide the data for it</span>
|
||||
<span class="k">if</span> <span class="n">path_data</span> <span class="ow">and</span> <span class="n">path_data</span><span class="o">.</span><span class="n">task</span> <span class="ow">and</span> <span class="n">path_data</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">active</span><span class="p">():</span>
|
||||
<span class="c1"># stop any old task in its tracks</span>
|
||||
<span class="n">path_data</span><span class="o">.</span><span class="n">task</span><span class="o">.</span><span class="n">cancel</span><span class="p">()</span>
|
||||
<span class="n">path_data</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="n">PathData</span><span class="p">(</span>
|
||||
<span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">,</span> <span class="n">xymap</span><span class="o">=</span><span class="n">xymap</span><span class="p">,</span> <span class="n">directions</span><span class="o">=</span><span class="n">directions</span><span class="p">,</span>
|
||||
<span class="n">step_sequence</span><span class="o">=</span><span class="n">step_sequence</span><span class="p">,</span> <span class="n">task</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">step</span> <span class="ow">and</span> <span class="n">path_data</span><span class="p">:</span>
|
||||
|
||||
<span class="n">step_sequence</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">step_sequence</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">direction</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">directions</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="n">current_node</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">step_sequence</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="n">first_link</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">step_sequence</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Target reached."</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="c1"># verfy our current location against the expected location</span>
|
||||
<span class="n">expected_xyz</span> <span class="o">=</span> <span class="p">(</span><span class="n">current_node</span><span class="o">.</span><span class="n">X</span><span class="p">,</span> <span class="n">current_node</span><span class="o">.</span><span class="n">Y</span><span class="p">,</span> <span class="n">current_node</span><span class="o">.</span><span class="n">Z</span><span class="p">)</span>
|
||||
<span class="n">location</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">location</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">xyz_start</span> <span class="o">=</span> <span class="n">location</span><span class="o">.</span><span class="n">xyz</span>
|
||||
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Goto aborted - outside of area."</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">xyz_start</span> <span class="o">!=</span> <span class="n">expected_xyz</span><span class="p">:</span>
|
||||
<span class="c1"># we are not where we expected to be (maybe the user moved</span>
|
||||
<span class="c1"># manually) - we must recalculate the path to target</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Path changed - recalculating ('goto' to abort)"</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">xyz_end</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">target</span><span class="o">.</span><span class="n">xyz</span>
|
||||
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Goto aborted - target outside of area."</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">xyz_start</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">!=</span> <span class="n">xyz_end</span><span class="p">[</span><span class="mi">2</span><span class="p">]:</span>
|
||||
<span class="c1"># can't go to another map</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Goto aborted - target outside of area."</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="c1"># recalculate path</span>
|
||||
<span class="n">xy_start</span> <span class="o">=</span> <span class="n">xyz_start</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="n">xy_end</span> <span class="o">=</span> <span class="n">xyz_end</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="n">directions</span><span class="p">,</span> <span class="n">step_sequence</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">xymap</span><span class="o">.</span><span class="n">get_shortest_path</span><span class="p">(</span><span class="n">xy_start</span><span class="p">,</span> <span class="n">xy_end</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># try again with this path, rebuilding the data</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">direction</span> <span class="o">=</span> <span class="n">directions</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="n">current_node</span> <span class="o">=</span> <span class="n">step_sequence</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="n">first_link</span> <span class="o">=</span> <span class="n">step_sequence</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Target reached."</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="n">path_data</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="n">PathData</span><span class="p">(</span>
|
||||
<span class="n">target</span><span class="o">=</span><span class="n">path_data</span><span class="o">.</span><span class="n">target</span><span class="p">,</span>
|
||||
<span class="n">xymap</span><span class="o">=</span><span class="n">path_data</span><span class="o">.</span><span class="n">xymap</span><span class="p">,</span>
|
||||
<span class="n">directions</span><span class="o">=</span><span class="n">directions</span><span class="p">,</span>
|
||||
<span class="n">step_sequence</span><span class="o">=</span><span class="n">step_sequence</span><span class="p">,</span>
|
||||
<span class="n">task</span><span class="o">=</span><span class="kc">None</span>
|
||||
<span class="p">)</span>
|
||||
<span class="c1"># the map can itself tell the stepper to stop the auto-step prematurely</span>
|
||||
<span class="n">interrupt_node_or_link</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
|
||||
<span class="c1"># pop any extra links up until the next node - these are</span>
|
||||
<span class="c1"># not useful when dealing with exits</span>
|
||||
<span class="k">while</span> <span class="n">step_sequence</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">interrupt_node_or_link</span> <span class="ow">and</span> <span class="n">step_sequence</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">interrupt_path</span><span class="p">:</span>
|
||||
<span class="n">interrupt_node_or_link</span> <span class="o">=</span> <span class="n">step_sequence</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">step_sequence</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s2">"node_index"</span><span class="p">):</span>
|
||||
<span class="k">break</span>
|
||||
<span class="n">step_sequence</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># the exit name does not need to be the same as the cardinal direction!</span>
|
||||
<span class="n">exit_name</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="o">=</span> <span class="n">first_link</span><span class="o">.</span><span class="n">spawn_aliases</span><span class="o">.</span><span class="n">get</span><span class="p">(</span>
|
||||
<span class="n">direction</span><span class="p">,</span> <span class="n">current_node</span><span class="o">.</span><span class="n">direction_spawn_defaults</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">direction</span><span class="p">,</span> <span class="p">(</span><span class="s1">'unknown'</span><span class="p">,</span> <span class="p">)))</span>
|
||||
|
||||
<span class="n">exit_obj</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">exit_name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">exit_obj</span><span class="p">:</span>
|
||||
<span class="c1"># extra safety measure to avoid trying to walk over and over</span>
|
||||
<span class="c1"># if there's something wrong with the exit's name</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No exit '</span><span class="si">{</span><span class="n">exit_name</span><span class="si">}</span><span class="s2">' found at current location. Aborting goto."</span><span class="p">)</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">interrupt_node_or_link</span><span class="p">:</span>
|
||||
<span class="c1"># premature stop of pathfind-step because of map node/link of interrupt type</span>
|
||||
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">interrupt_node_or_link</span><span class="p">,</span> <span class="s2">"node_index"</span><span class="p">):</span>
|
||||
<span class="n">message</span> <span class="o">=</span> <span class="n">exit_obj</span><span class="o">.</span><span class="n">destination</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span>
|
||||
<span class="s2">"xyz_path_interrupt_msg"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">default_xyz_path_interrupt_msg</span><span class="p">)</span>
|
||||
<span class="c1"># we move into the node/room and then stop</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="n">exit_name</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># if the link is interrupted we don't cross it at all</span>
|
||||
<span class="n">message</span> <span class="o">=</span> <span class="n">exit_obj</span><span class="o">.</span><span class="n">attributes</span><span class="o">.</span><span class="n">get</span><span class="p">(</span>
|
||||
<span class="s2">"xyz_path_interrupt_msg"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">default_xyz_path_interrupt_msg</span><span class="p">)</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="n">message</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="c1"># do the actual move - we use the command to allow for more obvious overrides</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">execute_cmd</span><span class="p">(</span><span class="n">exit_name</span><span class="p">,</span> <span class="n">session</span><span class="o">=</span><span class="n">session</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># namedtuples are unmutables, so we recreate and store</span>
|
||||
<span class="c1"># with the new task</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="n">PathData</span><span class="p">(</span>
|
||||
<span class="n">target</span><span class="o">=</span><span class="n">path_data</span><span class="o">.</span><span class="n">target</span><span class="p">,</span>
|
||||
<span class="n">xymap</span><span class="o">=</span><span class="n">path_data</span><span class="o">.</span><span class="n">xymap</span><span class="p">,</span>
|
||||
<span class="n">directions</span><span class="o">=</span><span class="n">path_data</span><span class="o">.</span><span class="n">directions</span><span class="p">,</span>
|
||||
<span class="n">step_sequence</span><span class="o">=</span><span class="n">path_data</span><span class="o">.</span><span class="n">step_sequence</span><span class="p">,</span>
|
||||
<span class="n">task</span><span class="o">=</span><span class="n">delay</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">auto_step_delay</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_auto_step</span><span class="p">,</span> <span class="n">caller</span><span class="p">,</span> <span class="n">session</span><span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="CmdGoto.func"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdGoto.func">[docs]</a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implement command</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">caller</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span>
|
||||
<span class="n">goto_mode</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cmdname</span> <span class="o">==</span> <span class="s1">'goto'</span>
|
||||
|
||||
<span class="c1"># check if we have an existing path</span>
|
||||
<span class="n">path_data</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">path_data</span><span class="p">:</span>
|
||||
<span class="n">target_name</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">target</span><span class="o">.</span><span class="n">get_display_name</span><span class="p">(</span><span class="n">caller</span><span class="p">)</span>
|
||||
<span class="n">task</span> <span class="o">=</span> <span class="n">path_data</span><span class="o">.</span><span class="n">task</span>
|
||||
<span class="k">if</span> <span class="n">goto_mode</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">task</span> <span class="ow">and</span> <span class="n">task</span><span class="o">.</span><span class="n">active</span><span class="p">():</span>
|
||||
<span class="n">task</span><span class="o">.</span><span class="n">cancel</span><span class="p">()</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Aborted auto-walking to </span><span class="si">{</span><span class="n">target_name</span><span class="si">}</span><span class="s2">."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="c1"># goto/path-command will show current path</span>
|
||||
<span class="n">current_path</span> <span class="o">=</span> <span class="n">list_to_string</span><span class="p">(</span>
|
||||
<span class="p">[</span><span class="sa">f</span><span class="s2">"|w</span><span class="si">{</span><span class="n">step</span><span class="si">}</span><span class="s2">|n"</span> <span class="k">for</span> <span class="n">step</span> <span class="ow">in</span> <span class="n">path_data</span><span class="o">.</span><span class="n">directions</span><span class="p">])</span>
|
||||
<span class="n">moving</span> <span class="o">=</span> <span class="s2">"(moving)"</span> <span class="k">if</span> <span class="n">task</span> <span class="ow">and</span> <span class="n">task</span><span class="o">.</span><span class="n">active</span><span class="p">()</span> <span class="k">else</span> <span class="s2">""</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Path to </span><span class="si">{</span><span class="n">target_name</span><span class="si">}{</span><span class="n">moving</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">current_path</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Usage: goto|path [<location>]"</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">goto_mode</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">==</span> <span class="s2">"clear"</span> <span class="ow">and</span> <span class="n">path_data</span><span class="p">:</span>
|
||||
<span class="c1"># in case there is a target location 'clear', this is only</span>
|
||||
<span class="c1"># used if path data already exists.</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">xy_path_data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Cleared goto-path."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="c1"># find target</span>
|
||||
<span class="n">xyzgrid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">xyz_start</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">location</span><span class="o">.</span><span class="n">xyz</span>
|
||||
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Cannot path-find since the current location is not on the grid."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="n">allow_xyz_query</span> <span class="o">=</span> <span class="n">caller</span><span class="o">.</span><span class="n">locks</span><span class="o">.</span><span class="n">check_lockstring</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="s2">"perm(Builder)"</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">allow_xyz_query</span> <span class="ow">and</span> <span class="nb">all</span><span class="p">(</span><span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">,</span> <span class="s2">","</span><span class="p">)):</span>
|
||||
<span class="c1"># search by (X,Y)</span>
|
||||
<span class="n">target</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_search_by_xyz</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="n">xyz_start</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">target</span><span class="p">:</span>
|
||||
<span class="k">return</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># search by normal key/alias</span>
|
||||
<span class="n">target</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_search_by_key_and_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="n">xyz_start</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">target</span><span class="p">:</span>
|
||||
<span class="k">return</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">xyz_end</span> <span class="o">=</span> <span class="n">target</span><span class="o">.</span><span class="n">xyz</span>
|
||||
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Target location is not on the grid and cannot be auto-walked to."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="n">xymap</span> <span class="o">=</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">get_map</span><span class="p">(</span><span class="n">xyz_start</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
|
||||
<span class="c1"># we only need the xy coords once we have the map</span>
|
||||
<span class="n">xy_start</span> <span class="o">=</span> <span class="n">xyz_start</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="n">xy_end</span> <span class="o">=</span> <span class="n">xyz_end</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span>
|
||||
<span class="n">directions</span><span class="p">,</span> <span class="n">step_sequence</span> <span class="o">=</span> <span class="n">xymap</span><span class="o">.</span><span class="n">get_shortest_path</span><span class="p">(</span><span class="n">xy_start</span><span class="p">,</span> <span class="n">xy_end</span><span class="p">)</span>
|
||||
|
||||
<span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"There are </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">directions</span><span class="p">)</span><span class="si">}</span><span class="s2"> steps to </span><span class="si">{</span><span class="n">target</span><span class="o">.</span><span class="n">get_display_name</span><span class="p">(</span><span class="n">caller</span><span class="p">)</span><span class="si">}</span><span class="s2">: "</span>
|
||||
<span class="sa">f</span><span class="s2">"|w</span><span class="si">{</span><span class="n">list_to_string</span><span class="p">(</span><span class="n">directions</span><span class="p">,</span> <span class="n">endsep</span><span class="o">=</span><span class="s1">'|n, and finally|w'</span><span class="p">)</span><span class="si">}</span><span class="s2">|n"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># create data for display and start stepping if we used goto</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_auto_step</span><span class="p">(</span><span class="n">caller</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">session</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="n">target</span><span class="p">,</span> <span class="n">xymap</span><span class="o">=</span><span class="n">xymap</span><span class="p">,</span>
|
||||
<span class="n">directions</span><span class="o">=</span><span class="n">directions</span><span class="p">,</span> <span class="n">step_sequence</span><span class="o">=</span><span class="n">step_sequence</span><span class="p">,</span> <span class="n">step</span><span class="o">=</span><span class="n">goto_mode</span><span class="p">)</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="CmdMap"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdMap">[docs]</a><span class="k">class</span> <span class="nc">CmdMap</span><span class="p">(</span><span class="n">COMMAND_DEFAULT_CLASS</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Show a map of an area</span>
|
||||
|
||||
<span class="sd"> Usage:</span>
|
||||
<span class="sd"> map [Zcoord]</span>
|
||||
<span class="sd"> map list</span>
|
||||
|
||||
<span class="sd"> This is a builder-command.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">key</span> <span class="o">=</span> <span class="s2">"map"</span>
|
||||
<span class="n">locks</span> <span class="o">=</span> <span class="s2">"cmd:perm(Builders)"</span>
|
||||
|
||||
<div class="viewcode-block" id="CmdMap.func"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.CmdMap.func">[docs]</a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""Implement command"""</span>
|
||||
|
||||
<span class="n">xyzgrid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
|
||||
<span class="c1"># show current area's map</span>
|
||||
<span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">location</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">xyz</span> <span class="o">=</span> <span class="n">location</span><span class="o">.</span><span class="n">xyz</span>
|
||||
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="s2">"Your current location is not on the grid."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="n">xyz</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span>
|
||||
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"list"</span><span class="p">:</span>
|
||||
<span class="n">xymaps</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">xymap</span><span class="p">))</span> <span class="k">for</span> <span class="n">xymap</span> <span class="ow">in</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">all_maps</span><span class="p">())</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Maps (Z coords) on the grid:</span><span class="se">\n</span><span class="s2"> |w</span><span class="si">{</span><span class="n">xymaps</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">Z</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span>
|
||||
|
||||
<span class="n">xymap</span> <span class="o">=</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">get_map</span><span class="p">(</span><span class="n">Z</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">xymap</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"XYMap '</span><span class="si">{</span><span class="n">Z</span><span class="si">}</span><span class="s2">' is not found on the grid. Try 'map list' to see "</span>
|
||||
<span class="s2">"available maps/Zcoords."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">caller</span><span class="o">.</span><span class="n">msg</span><span class="p">(</span><span class="n">ansi</span><span class="o">.</span><span class="n">raw</span><span class="p">(</span><span class="n">xymap</span><span class="o">.</span><span class="n">mapstring</span><span class="p">))</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="XYZGridCmdSet"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.XYZGridCmdSet">[docs]</a><span class="k">class</span> <span class="nc">XYZGridCmdSet</span><span class="p">(</span><span class="n">CmdSet</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Cmdset for easily adding the above cmds to the character cmdset.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">key</span> <span class="o">=</span> <span class="s2">"xyzgrid_cmdset"</span>
|
||||
|
||||
<div class="viewcode-block" id="XYZGridCmdSet.at_cmdset_creation"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.commands.html#evennia.contrib.grid.xyzgrid.commands.XYZGridCmdSet.at_cmdset_creation">[docs]</a> <span class="k">def</span> <span class="nf">at_cmdset_creation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">CmdXYZTeleport</span><span class="p">())</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">CmdXYZOpen</span><span class="p">())</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">CmdGoto</span><span class="p">())</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">CmdMap</span><span class="p">())</span></div></div>
|
||||
</pre></div>
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||||
<li><a href="https://github.com/evennia/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>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="commands.html">1.0-dev (develop 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="clearer"></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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.commands</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,398 +0,0 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>evennia.contrib.grid.xyzgrid.example — Evennia 1.0-dev 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>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</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" />
|
||||
</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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" accesskey="U">evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.example</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for evennia.contrib.grid.xyzgrid.example</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Example xymaps to use with the XYZgrid contrib. Build outside of the game using</span>
|
||||
<span class="sd">the `evennia xyzgrid` launcher command.</span>
|
||||
|
||||
<span class="sd">First add the launcher extension in your mygame/server/conf/settings.py:</span>
|
||||
|
||||
<span class="sd"> EXTRA_LAUNCHER_COMMANDS['xyzgrid'] = 'evennia.contrib.grid.xyzgrid.launchcmd.xyzcommand'</span>
|
||||
|
||||
<span class="sd">Then</span>
|
||||
|
||||
<span class="sd"> evennia xyzgrid init</span>
|
||||
<span class="sd"> evennia xyzgrid add evennia.contrib.grid.xyzgrid.map_example</span>
|
||||
<span class="sd"> evennia xyzgrid build</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="sd">"""</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia.contrib.grid.xyzgrid</span> <span class="kn">import</span> <span class="n">xymap_legend</span>
|
||||
|
||||
<span class="c1"># default prototype parent. It's important that</span>
|
||||
<span class="c1"># the typeclass inherits from the XYZRoom (or XYZExit)</span>
|
||||
<span class="c1"># if adding the evennia.contrib.grid.xyzgrid.prototypes to</span>
|
||||
<span class="c1"># settings.PROTOTYPE_MODULES, one could just set the</span>
|
||||
<span class="c1"># prototype_parent to 'xyz_room' and 'xyz_exit' here</span>
|
||||
<span class="c1"># instead.</span>
|
||||
|
||||
<span class="n">ROOM_PARENT</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"An empty room"</span><span class="p">,</span>
|
||||
<span class="s2">"prototype_key"</span><span class="p">:</span> <span class="s2">"xyz_exit_prototype"</span><span class="p">,</span>
|
||||
<span class="c1"># "prototype_parent": "xyz_room",</span>
|
||||
<span class="s2">"typeclass"</span><span class="p">:</span> <span class="s2">"evennia.contrib.grid.xyzgrid.xyzroom.XYZRoom"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"An empty room."</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">EXIT_PARENT</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"prototype_key"</span><span class="p">:</span> <span class="s2">"xyz_exit_prototype"</span><span class="p">,</span>
|
||||
<span class="c1"># "prototype_parent": "xyz_exit",</span>
|
||||
<span class="s2">"typeclass"</span><span class="p">:</span> <span class="s2">"evennia.contrib.grid.xyzgrid.xyzroom.XYZExit"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"A path to the next location."</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
|
||||
<span class="c1"># ---------------------------------------- map1</span>
|
||||
<span class="c1"># The large tree</span>
|
||||
<span class="c1">#</span>
|
||||
<span class="c1"># this exemplifies the various map symbols</span>
|
||||
<span class="c1"># but is not heavily prototyped</span>
|
||||
|
||||
<span class="n">MAP1</span> <span class="o">=</span> <span class="sa">r</span><span class="s2">"""</span>
|
||||
<span class="s2"> 1</span>
|
||||
<span class="s2"> + 0 1 2 3 4 5 6 7 8 9 0</span>
|
||||
|
||||
<span class="s2"> 8 #-------#-#-------I</span>
|
||||
<span class="s2"> \ /</span>
|
||||
<span class="s2"> 7 #-#---# t-#</span>
|
||||
<span class="s2"> |\ |</span>
|
||||
<span class="s2"> 6 #i#-#b--#-t</span>
|
||||
<span class="s2"> | |</span>
|
||||
<span class="s2"> 5 o-#---#</span>
|
||||
<span class="s2"> \ /</span>
|
||||
<span class="s2"> 4 o---#-#</span>
|
||||
<span class="s2"> / d</span>
|
||||
<span class="s2"> 3 #-----+-------#</span>
|
||||
<span class="s2"> | d</span>
|
||||
<span class="s2"> 2 | |</span>
|
||||
<span class="s2"> v u</span>
|
||||
<span class="s2"> 1 #---#>#-#</span>
|
||||
<span class="s2"> /</span>
|
||||
<span class="s2"> 0 #-T</span>
|
||||
|
||||
<span class="s2"> + 0 1 2 3 4 5 6 7 8 9 0</span>
|
||||
<span class="s2"> 1</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="TransitionToCave"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.example.html#evennia.contrib.grid.xyzgrid.example.TransitionToCave">[docs]</a><span class="k">class</span> <span class="nc">TransitionToCave</span><span class="p">(</span><span class="n">xymap_legend</span><span class="o">.</span><span class="n">TransitionMapNode</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> A transition from 'the large tree' to 'the small cave' map. This node is never spawned</span>
|
||||
<span class="sd"> into a room but only acts as a target for finding the exit's destination.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">symbol</span> <span class="o">=</span> <span class="s1">'T'</span>
|
||||
<span class="n">target_map_xyz</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">'the small cave'</span><span class="p">)</span></div>
|
||||
|
||||
|
||||
<span class="c1"># extends the default legend</span>
|
||||
<span class="n">LEGEND_MAP1</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s1">'T'</span><span class="p">:</span> <span class="n">TransitionToCave</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
|
||||
<span class="c1"># link coordinates to rooms</span>
|
||||
<span class="n">PROTOTYPES_MAP1</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># node/room prototypes</span>
|
||||
<span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Dungeon Entrance"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"To the east, a narrow opening leads into darkness."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Under the foilage of a giant tree"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"High above the branches of a giant tree blocks out the sunlight. A slide "</span>
|
||||
<span class="s2">"leading down from the upper branches ends here."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"The slide"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"A slide leads down to the ground from here. It looks like a one-way trip."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Thorny path"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"To the east is a pathway of thorns. If you get through, you don't think you'll be "</span>
|
||||
<span class="s2">"able to get back here the same way."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"By a large tree"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"You are standing at the root of a great tree."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">3</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"At the top of the tree"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"You are at the top of the tree."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Dense foilage"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"The foilage to the east is extra dense. It will take forever to get through it."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"On a huge branch"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"To the east is a glowing light, may be a teleporter to a higher branch."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">9</span><span class="p">,</span> <span class="mi">7</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"On an enormous branch"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"To the west is a glowing light. It may be a teleporter to a lower branch."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">8</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"A gorgeous view"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"The view from here is breathtaking, showing the forest stretching far and wide."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="c1"># default rooms</span>
|
||||
<span class="p">(</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Among the branches of a giant tree"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"These branches are wide enough to easily walk on. There's green all around."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="c1"># directional prototypes</span>
|
||||
<span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">'e'</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"A dark passage into the underworld."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">prot</span> <span class="ow">in</span> <span class="n">PROTOTYPES_MAP1</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
|
||||
<span class="c1"># we don't want to give exits the room typeclass!</span>
|
||||
<span class="n">prot</span><span class="p">[</span><span class="s1">'prototype_parent'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ROOM_PARENT</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">prot</span><span class="p">[</span><span class="s1">'prototype_parent'</span><span class="p">]</span> <span class="o">=</span> <span class="n">EXIT_PARENT</span>
|
||||
|
||||
|
||||
<span class="n">XYMAP_DATA_MAP1</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"zcoord"</span><span class="p">:</span> <span class="s2">"the large tree"</span><span class="p">,</span>
|
||||
<span class="s2">"map"</span><span class="p">:</span> <span class="n">MAP1</span><span class="p">,</span>
|
||||
<span class="s2">"legend"</span><span class="p">:</span> <span class="n">LEGEND_MAP1</span><span class="p">,</span>
|
||||
<span class="s2">"prototypes"</span><span class="p">:</span> <span class="n">PROTOTYPES_MAP1</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="c1"># -------------------------------------- map2</span>
|
||||
<span class="c1"># The small cave</span>
|
||||
<span class="c1"># this gives prototypes for every room</span>
|
||||
|
||||
<span class="n">MAP2</span> <span class="o">=</span> <span class="sa">r</span><span class="s2">"""</span>
|
||||
<span class="s2">+ 0 1 2 3</span>
|
||||
|
||||
<span class="s2">3 #-#-#</span>
|
||||
<span class="s2"> |x|</span>
|
||||
<span class="s2">2 #-#-#</span>
|
||||
<span class="s2"> | \</span>
|
||||
<span class="s2">1 #---#</span>
|
||||
<span class="s2"> | /</span>
|
||||
<span class="s2">0 T-#-#</span>
|
||||
|
||||
<span class="s2">+ 0 1 2 3</span>
|
||||
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="c1"># custom map node</span>
|
||||
<div class="viewcode-block" id="TransitionToLargeTree"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.example.html#evennia.contrib.grid.xyzgrid.example.TransitionToLargeTree">[docs]</a><span class="k">class</span> <span class="nc">TransitionToLargeTree</span><span class="p">(</span><span class="n">xymap_legend</span><span class="o">.</span><span class="n">TransitionMapNode</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> A transition from 'the small cave' to 'the large tree' map. This node is never spawned</span>
|
||||
<span class="sd"> into a room by only acts as a target for finding the exit's destination.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">symbol</span> <span class="o">=</span> <span class="s1">'T'</span>
|
||||
<span class="n">target_map_xyz</span> <span class="o">=</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">'the large tree'</span><span class="p">)</span></div>
|
||||
|
||||
|
||||
<span class="c1"># this extends the default legend (that defines #,-+ etc)</span>
|
||||
<span class="n">LEGEND_MAP2</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"T"</span><span class="p">:</span> <span class="n">TransitionToLargeTree</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="c1"># prototypes for specific locations</span>
|
||||
<span class="n">PROTOTYPES_MAP2</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="c1"># node/rooms prototype overrides</span>
|
||||
<span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"The entrance"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"This is the entrance to a small cave leading into the ground. "</span>
|
||||
<span class="s2">"Light sifts in from the outside, while cavernous passages disappear "</span>
|
||||
<span class="s2">"into darkness."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"A gruesome sight."</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"Something was killed here recently. The smell is unbearable."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"A dark pathway"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"The path splits three ways here. To the north a faint light can be seen."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Stagnant water"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"A pool of stagnant, black water dominates this small chamber. To the nortwest "</span>
|
||||
<span class="s2">"a faint light can be seen."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"A dark alcove"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"This alcove is empty."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"South-west corner of the atrium"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"Sunlight sifts down into a large underground chamber. Weeds and grass sprout "</span>
|
||||
<span class="s2">"between the stones."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"South-east corner of the atrium"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"Sunlight sifts down into a large underground chamber. Weeds and grass sprout "</span>
|
||||
<span class="s2">"between the stones."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"North-west corner of the atrium"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"Sunlight sifts down into a large underground chamber. Weeds and grass sprout "</span>
|
||||
<span class="s2">"between the stones."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"North-east corner of the atrium"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"Sunlight sifts down into a large underground chamber. Weeds and grass sprout "</span>
|
||||
<span class="s2">"between the stones. To the east is a dark passage."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"Craggy crevice"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"This is the deepest part of the dungeon. The path shrinks away and there "</span>
|
||||
<span class="s2">"is no way to continue deeper."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="c1"># default fallback for undefined nodes</span>
|
||||
<span class="p">(</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"key"</span><span class="p">:</span> <span class="s2">"A dark room"</span><span class="p">,</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"A dark, but empty, room."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="c1"># directional prototypes</span>
|
||||
<span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"A narrow path to the fresh air of the outside world."</span>
|
||||
<span class="p">},</span>
|
||||
<span class="c1"># directional fallbacks for unset directions</span>
|
||||
<span class="p">(</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">):</span> <span class="p">{</span>
|
||||
<span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"A dark passage"</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="c1"># this is required by the prototypes, but we add it all at once so we don't</span>
|
||||
<span class="c1"># need to add it to every line above</span>
|
||||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">prot</span> <span class="ow">in</span> <span class="n">PROTOTYPES_MAP2</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
|
||||
<span class="c1"># we don't want to give exits the room typeclass!</span>
|
||||
<span class="n">prot</span><span class="p">[</span><span class="s1">'prototype_parent'</span><span class="p">]</span> <span class="o">=</span> <span class="n">ROOM_PARENT</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">prot</span><span class="p">[</span><span class="s1">'prototype_parent'</span><span class="p">]</span> <span class="o">=</span> <span class="n">EXIT_PARENT</span>
|
||||
|
||||
|
||||
<span class="n">XYMAP_DATA_MAP2</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"map"</span><span class="p">:</span> <span class="n">MAP2</span><span class="p">,</span>
|
||||
<span class="s2">"zcoord"</span><span class="p">:</span> <span class="s2">"the small cave"</span><span class="p">,</span>
|
||||
<span class="s2">"legend"</span><span class="p">:</span> <span class="n">LEGEND_MAP2</span><span class="p">,</span>
|
||||
<span class="s2">"prototypes"</span><span class="p">:</span> <span class="n">PROTOTYPES_MAP2</span><span class="p">,</span>
|
||||
<span class="s2">"options"</span><span class="p">:</span> <span class="p">{</span>
|
||||
<span class="s2">"map_visual_range"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
||||
<span class="s2">"map_mode"</span><span class="p">:</span> <span class="s1">'scan'</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="c1"># This is read by the parser</span>
|
||||
<span class="n">XYMAP_DATA_LIST</span> <span class="o">=</span> <span class="p">[</span>
|
||||
<span class="n">XYMAP_DATA_MAP1</span><span class="p">,</span>
|
||||
<span class="n">XYMAP_DATA_MAP2</span>
|
||||
<span class="p">]</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||||
<li><a href="https://github.com/evennia/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>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="example.html">1.0-dev (develop 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="clearer"></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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.example</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,531 +0,0 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>evennia.contrib.grid.xyzgrid.launchcmd — Evennia 1.0-dev 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>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</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" />
|
||||
</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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" accesskey="U">evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.launchcmd</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for evennia.contrib.grid.xyzgrid.launchcmd</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Custom Evennia launcher command option for maintaining the grid in a separate process than the main</span>
|
||||
<span class="sd">server (since this can be slow).</span>
|
||||
|
||||
<span class="sd">To use, add to the settings:</span>
|
||||
<span class="sd">::</span>
|
||||
|
||||
<span class="sd"> EXTRA_LAUNCHER_COMMANDS.update({'xyzgrid': 'evennia.contrib.grid.xyzgrid.launchcmd.xyzcommand'})</span>
|
||||
|
||||
<span class="sd">You should now be able to do</span>
|
||||
<span class="sd">::</span>
|
||||
|
||||
<span class="sd"> evennia xyzgrid <options></span>
|
||||
|
||||
<span class="sd">Use `evennia xyzgrid help` for usage help.</span>
|
||||
|
||||
<span class="sd">"""</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">os.path</span> <span class="kn">import</span> <span class="n">join</span> <span class="k">as</span> <span class="n">pathjoin</span>
|
||||
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
|
||||
<span class="kn">import</span> <span class="nn">evennia</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">ansi</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.contrib.grid.xyzgrid.xyzgrid</span> <span class="kn">import</span> <span class="n">get_xyzgrid</span>
|
||||
|
||||
|
||||
<span class="n">_HELP_SHORT</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">evennia xyzgrid help | list | init | add | spawn | initpath | delete [<options>]</span>
|
||||
<span class="s2"> Manages the XYZ grid. Use 'xyzgrid help <option>' for documentation.</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="n">_HELP_HELP</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">evennia xyzgrid <command> [<options>]</span>
|
||||
<span class="s2">Manages the XYZ grid.</span>
|
||||
|
||||
<span class="s2">help <command> - get help about each command:</span>
|
||||
<span class="s2"> list - show list</span>
|
||||
<span class="s2"> init - initialize grid (only one time)</span>
|
||||
<span class="s2"> add - add new maps to grid</span>
|
||||
<span class="s2"> spawn - spawn added maps into actual db-rooms/exits</span>
|
||||
<span class="s2"> initpath - (re)creates pathfinder matrices</span>
|
||||
<span class="s2"> delete - delete part or all of grid</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="n">_HELP_LIST</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">list</span>
|
||||
|
||||
<span class="s2"> Lists the map grid structure and any loaded maps.</span>
|
||||
|
||||
<span class="s2">list <Z|mapname></span>
|
||||
|
||||
<span class="s2"> Display the given XYmap in more detail. Also 'show' works. Use quotes around</span>
|
||||
<span class="s2"> map-names with spaces.</span>
|
||||
|
||||
<span class="s2">Examples:</span>
|
||||
|
||||
<span class="s2"> evennia xyzgrid list</span>
|
||||
<span class="s2"> evennia xyzgrid list mymap</span>
|
||||
<span class="s2"> evennia xyzgrid list "the small cave"</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="n">_HELP_INIT</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">init</span>
|
||||
|
||||
<span class="s2"> First start of the grid. This will create the XYZGrid global script. No maps are loaded yet!</span>
|
||||
<span class="s2"> It's safe to run this command multiple times; the grid will only be initialized once.</span>
|
||||
|
||||
<span class="s2">Example:</span>
|
||||
|
||||
<span class="s2"> evennia xyzgrid init</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
|
||||
<span class="n">_HELP_ADD</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">add <path.to.xymap.module> [<path> <path>,...]</span>
|
||||
|
||||
<span class="s2"> Add path(s) to one or more modules containing XYMap definitions. The module will be parsed</span>
|
||||
<span class="s2"> for</span>
|
||||
|
||||
<span class="s2"> - a XYMAP_DATA - a dict on this form:</span>
|
||||
<span class="s2"> {"map": mapstring, "zcoord": mapname/zcoord, "legend": dict, "prototypes": dict}</span>
|
||||
<span class="s2"> describing one single XYmap, or</span>
|
||||
<span class="s2"> - a XYMAP_DATA_LIST - a list of multiple dicts on the XYMAP_DATA form. This allows for</span>
|
||||
<span class="s2"> embedding multiple maps in the same module. See evennia/contrib/grid/xyzgrid/example.py</span>
|
||||
<span class="s2"> for an example of how this looks.</span>
|
||||
|
||||
<span class="s2"> Note that adding a map does *not* spawn it. If maps are linked to one another, you should</span>
|
||||
<span class="s2"> add all linked maps before running 'spawn', or you'll get errors when creating transitional</span>
|
||||
<span class="s2"> exits between maps.</span>
|
||||
|
||||
<span class="s2">Examples:</span>
|
||||
|
||||
<span class="s2"> evennia xyzgrid add evennia.contrib.grid.xyzgrid.example</span>
|
||||
<span class="s2"> evennia xyzgrid add world.mymap1 world.mymap2 world.mymap3</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="n">_HELP_SPAWN</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">spawn</span>
|
||||
|
||||
<span class="s2"> spawns/updates the entire database grid based on the added maps. For a new grid, this will</span>
|
||||
<span class="s2"> spawn all new rooms/exits (and may take a good while!). For updating, rooms may be</span>
|
||||
<span class="s2"> removed/spawned if a map changed since the last spawn.</span>
|
||||
|
||||
<span class="s2">spawn "(X,Y,Z|mapname)"</span>
|
||||
|
||||
<span class="s2"> spawns/updates only a part of the grid. Remember the quotes around the coordinate (this</span>
|
||||
<span class="s2"> is mostly because shells don't like them)! Use '*' as a wild card for XY coordinates.</span>
|
||||
<span class="s2"> This should usually only be used if the full grid has already been built once - otherwise</span>
|
||||
<span class="s2"> inter-map transitions may fail! Z is the name/z-coordinate of the map to spawn.</span>
|
||||
|
||||
<span class="s2">Examples:</span>
|
||||
|
||||
<span class="s2"> evennia xyzgrid spawn - spawn all</span>
|
||||
<span class="s2"> evennia xyzgrid "(*, *, mymap1)" - spawn everything of map/zcoord mymap1</span>
|
||||
<span class="s2"> evennia xyzgrid "(12, 5, mymap1)" - spawn only coordinate (12, 5) on map/zcoord mymap1</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="n">_HELP_INITPATH</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">initpath</span>
|
||||
|
||||
<span class="s2"> Recreates the pathfinder matrices for the entire grid. These are used for all shortest-path</span>
|
||||
<span class="s2"> calculations. The result will be cached to disk (in mygame/server/.cache/). If not run, each</span>
|
||||
<span class="s2"> map will run this automatically first time it's used. Running this will always force to</span>
|
||||
<span class="s2"> respawn the cache.</span>
|
||||
|
||||
<span class="s2">initpath Z|mapname</span>
|
||||
|
||||
<span class="s2"> recreate the pathfinder matrix for a specific map only. Z is the name/z-coordinate of the</span>
|
||||
<span class="s2"> map. If the map name has spaces in it, use quotes.</span>
|
||||
|
||||
<span class="s2">Examples:</span>
|
||||
|
||||
<span class="s2"> evennia xyzgrid initpath</span>
|
||||
<span class="s2"> evennia xyzgrid initpath mymap1</span>
|
||||
<span class="s2"> evennia xyzgrid initpath "the small cave"</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="n">_HELP_DELETE</span> <span class="o">=</span> <span class="s2">"""</span>
|
||||
<span class="s2">delete</span>
|
||||
|
||||
<span class="s2"> WARNING: This will delete the entire xyz-grid (all maps), and *all* rooms/exits built to</span>
|
||||
<span class="s2"> match it (they serve no purpose without the grid). You will be asked to confirm before</span>
|
||||
<span class="s2"> continuing with this operation.</span>
|
||||
|
||||
<span class="s2">delete Z|mapname</span>
|
||||
|
||||
<span class="s2"> Remove a previously added XYmap with the name/z-coordinate Z. If the map was built, this</span>
|
||||
<span class="s2"> will also wipe all its spawned rooms/exits. You will be asked to confirm before continuing</span>
|
||||
<span class="s2"> with this operation. Use quotes if the Z/mapname contains spaces.</span>
|
||||
|
||||
<span class="s2">Examples:</span>
|
||||
|
||||
<span class="s2"> evennia xyzgrid delete</span>
|
||||
<span class="s2"> evennia xyzgrid delete mymap1</span>
|
||||
<span class="s2"> evennia xyzgrid delete "the small cave"</span>
|
||||
<span class="s2">"""</span>
|
||||
|
||||
<span class="n">_TOPICS_MAP</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"list"</span><span class="p">:</span> <span class="n">_HELP_LIST</span><span class="p">,</span>
|
||||
<span class="s2">"init"</span><span class="p">:</span> <span class="n">_HELP_INIT</span><span class="p">,</span>
|
||||
<span class="s2">"add"</span><span class="p">:</span> <span class="n">_HELP_ADD</span><span class="p">,</span>
|
||||
<span class="s2">"spawn"</span><span class="p">:</span> <span class="n">_HELP_SPAWN</span><span class="p">,</span>
|
||||
<span class="s2">"initpath"</span><span class="p">:</span> <span class="n">_HELP_INITPATH</span><span class="p">,</span>
|
||||
<span class="s2">"delete"</span><span class="p">:</span> <span class="n">_HELP_DELETE</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">evennia</span><span class="o">.</span><span class="n">_init</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_option_help</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Show help <command> aid.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">suboptions</span><span class="p">:</span>
|
||||
<span class="n">topic</span> <span class="o">=</span> <span class="n">_HELP_HELP</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">topic</span> <span class="o">=</span> <span class="n">_TOPICS_MAP</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">suboptions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">_HELP_HELP</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">topic</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_option_list</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> List/view grid.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">xyzgrid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># override grid's logger to echo directly to console</span>
|
||||
<span class="k">def</span> <span class="nf">_log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
|
||||
<span class="n">xyzgrid</span><span class="o">.</span><span class="n">log</span> <span class="o">=</span> <span class="n">_log</span>
|
||||
|
||||
<span class="n">xymap_data</span> <span class="o">=</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">grid</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">xymap_data</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Grid could not load due to errors."</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"The XYZgrid is currently empty. Use 'add' to add paths to your map data."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">suboptions</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"XYMaps stored in grid:"</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">zcoord</span><span class="p">,</span> <span class="n">xymap</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">xymap_data</span><span class="o">.</span><span class="n">items</span><span class="p">(),</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">tup</span><span class="p">:</span> <span class="n">tup</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">xymap</span><span class="p">))</span> <span class="o">+</span> <span class="s2">":</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">ansi</span><span class="o">.</span><span class="n">parse_ansi</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">xymap</span><span class="p">)))</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="n">zcoord</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="n">xymap</span> <span class="o">=</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">get_map</span><span class="p">(</span><span class="n">zcoord</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">xymap</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No XYMap with Z='</span><span class="si">{</span><span class="n">zcoord</span><span class="si">}</span><span class="s2">' was found on grid."</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">nrooms</span> <span class="o">=</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">get_room</span><span class="p">((</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">,</span> <span class="n">zcoord</span><span class="p">))</span><span class="o">.</span><span class="n">count</span><span class="p">()</span>
|
||||
<span class="n">nnodes</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">xymap</span><span class="o">.</span><span class="n">node_index_map</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">repr</span><span class="p">(</span><span class="n">xymap</span><span class="p">))</span> <span class="o">+</span> <span class="s2">":</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="n">checkwarning</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">nrooms</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">nrooms</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">nnodes</span><span class="si">}</span><span class="s2"> rooms are spawned."</span><span class="p">)</span>
|
||||
<span class="n">checkwarning</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="k">elif</span> <span class="n">nrooms</span> <span class="o"><</span> <span class="n">nnodes</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">nrooms</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">nnodes</span><span class="si">}</span><span class="s2"> rooms are spawned</span><span class="se">\n</span><span class="s2">"</span>
|
||||
<span class="s2">"Note: Transitional nodes are *not* spawned (they just point </span><span class="se">\n</span><span class="s2">"</span>
|
||||
<span class="s2">"to another map), so the 'missing room(s)' may just be from such nodes."</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="n">nrooms</span> <span class="o">></span> <span class="n">nnodes</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">nrooms</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">nnodes</span><span class="si">}</span><span class="s2"> rooms are spawned</span><span class="se">\n</span><span class="s2">"</span>
|
||||
<span class="s2">"Note: Maybe some rooms were removed from map. Run 'spawn' to re-sync."</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">nrooms</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">nnodes</span><span class="si">}</span><span class="s2"> rooms are spawned</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">checkwarning</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Note: This check is not complete; it does not consider changed map "</span>
|
||||
<span class="s2">"topology</span><span class="se">\n</span><span class="s2">like relocated nodes/rooms and new/removed links/exits - this "</span>
|
||||
<span class="s2">"is calculated only during a spawn."</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Displayed map (as appearing in-game):</span><span class="se">\n\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">ansi</span><span class="o">.</span><span class="n">parse_ansi</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">xymap</span><span class="p">)))</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Raw map string (including axes and invisible nodes/links):</span><span class="se">\n</span><span class="s2">"</span>
|
||||
<span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">xymap</span><span class="o">.</span><span class="n">mapstring</span><span class="p">))</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Custom map options: </span><span class="si">{</span><span class="n">xymap</span><span class="o">.</span><span class="n">options</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="n">legend</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">node_or_link</span> <span class="ow">in</span> <span class="n">xymap</span><span class="o">.</span><span class="n">legend</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="n">legend</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">node_or_link</span><span class="o">.</span><span class="vm">__doc__</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Legend (all elements may not be present on map):</span><span class="se">\n</span><span class="s2"> "</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">legend</span><span class="p">))</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_option_init</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Initialize a new grid. Will fail if a Grid already exists.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">grid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"The grid is initalized as the Script '</span><span class="si">{</span><span class="n">grid</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">'(</span><span class="si">{</span><span class="n">grid</span><span class="o">.</span><span class="n">dbref</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_option_add</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Add one or more map to the grid. Supports `add path,path,path,...`</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">grid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># override grid's logger to echo directly to console</span>
|
||||
<span class="k">def</span> <span class="nf">_log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">log</span> <span class="o">=</span> <span class="n">_log</span>
|
||||
|
||||
<span class="n">xymap_data_list</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">path</span> <span class="ow">in</span> <span class="n">suboptions</span><span class="p">:</span>
|
||||
<span class="n">maps</span> <span class="o">=</span> <span class="n">grid</span><span class="o">.</span><span class="n">maps_from_module</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">maps</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No maps found with the path </span><span class="si">{</span><span class="n">path</span><span class="si">}</span><span class="s2">.</span><span class="se">\n</span><span class="s2">Separate multiple paths with spaces. "</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="n">mapnames</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">m</span><span class="p">[</span><span class="s1">'zcoord'</span><span class="p">]</span><span class="si">}</span><span class="s2">'"</span> <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">maps</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">" XYMaps from </span><span class="si">{</span><span class="n">path</span><span class="si">}</span><span class="s2">:</span><span class="se">\n</span><span class="s2"> </span><span class="si">{</span><span class="n">mapnames</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="n">xymap_data_list</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">maps</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">add_maps</span><span class="p">(</span><span class="o">*</span><span class="n">xymap_data_list</span><span class="p">)</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">reload</span><span class="p">()</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Added (or readded) </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">xymap_data_list</span><span class="p">)</span><span class="si">}</span><span class="s2"> XYMaps to grid."</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_option_spawn</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> spawn the grid or part of it.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">grid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># override grid's logger to echo directly to console</span>
|
||||
<span class="k">def</span> <span class="nf">_log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">log</span> <span class="o">=</span> <span class="n">_log</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">suboptions</span><span class="p">:</span>
|
||||
<span class="n">opts</span> <span class="o">=</span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">suboptions</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s1">'()'</span><span class="p">)</span>
|
||||
<span class="c1"># coordinate tuple</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">opts</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">))</span>
|
||||
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"spawn coordinate must be given as (X, Y, Z) tuple, where '*' act "</span>
|
||||
<span class="s2">"wild cards and Z is the mapname/z-coord of the map to load."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="n">y</span> <span class="o">==</span> <span class="n">z</span> <span class="o">==</span> <span class="s1">'*'</span><span class="p">:</span>
|
||||
<span class="n">inp</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s2">"This will (re)spawn the entire grid. If it was built before, it may spawn </span><span class="se">\n</span><span class="s2">"</span>
|
||||
<span class="s2">"new rooms or delete rooms that no longer matches the grid.</span><span class="se">\n</span><span class="s2">Do you want to "</span>
|
||||
<span class="s2">"continue? [Y]/N? "</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">inp</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s2">"This will spawn/delete objects in the database matching grid coordinates </span><span class="se">\n</span><span class="s2">"</span>
|
||||
<span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">x</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">y</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">z</span><span class="si">}</span><span class="s2">) (where '*' is a wildcard).</span><span class="se">\n</span><span class="s2">Do you want to continue? [Y]/N? "</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">inp</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'no'</span><span class="p">,</span> <span class="s1">'n'</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Aborted."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Starting spawn ..."</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">spawn</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span><span class="p">))</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"... spawn complete!</span><span class="se">\n</span><span class="s2">It's recommended to reload the server to refresh caches if this "</span>
|
||||
<span class="s2">"modified an existing grid."</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_option_initpath</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> (Re)Initialize the pathfinding matrices for grid or part of it.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">grid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># override grid's logger to echo directly to console</span>
|
||||
<span class="k">def</span> <span class="nf">_log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">log</span> <span class="o">=</span> <span class="n">_log</span>
|
||||
|
||||
<span class="n">xymaps</span> <span class="o">=</span> <span class="n">grid</span><span class="o">.</span><span class="n">all_maps</span><span class="p">()</span>
|
||||
<span class="n">nmaps</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">xymaps</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">inum</span><span class="p">,</span> <span class="n">xymap</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">xymaps</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"(Re)building pathfinding matrix for xymap Z=</span><span class="si">{</span><span class="n">xymap</span><span class="o">.</span><span class="n">Z</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">inum</span><span class="o">+</span><span class="mi">1</span><span class="si">}</span><span class="s2">/</span><span class="si">{</span><span class="n">nmaps</span><span class="si">}</span><span class="s2">) ..."</span><span class="p">)</span>
|
||||
<span class="n">xymap</span><span class="o">.</span><span class="n">calculate_path_matrix</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
|
||||
<span class="n">cachepath</span> <span class="o">=</span> <span class="n">pathjoin</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">GAME_DIR</span><span class="p">,</span> <span class="s2">"server"</span><span class="p">,</span> <span class="s2">".cache"</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"... done. Data cached to </span><span class="si">{</span><span class="n">cachepath</span><span class="si">}</span><span class="s2">."</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">_option_delete</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Delete the grid or parts of it. Allows mapname,mapname, ...</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">grid</span> <span class="o">=</span> <span class="n">get_xyzgrid</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># override grid's logger to echo directly to console</span>
|
||||
<span class="k">def</span> <span class="nf">_log</span><span class="p">(</span><span class="n">msg</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">log</span> <span class="o">=</span> <span class="n">_log</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">suboptions</span><span class="p">:</span>
|
||||
<span class="n">repl</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s2">"WARNING: This will delete the ENTIRE Grid and wipe all rooms/exits!"</span>
|
||||
<span class="s2">"</span><span class="se">\n</span><span class="s2">Objects/Chars inside deleted rooms will be moved to their home locations."</span>
|
||||
<span class="s2">"</span><span class="se">\n</span><span class="s2">This can't be undone. Are you sure you want to continue? Y/[N]? "</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">repl</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'yes'</span><span class="p">,</span> <span class="s1">'y'</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Aborted."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Deleting grid ..."</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"... done.</span><span class="se">\n</span><span class="s2">Please reload the server now; otherwise "</span>
|
||||
<span class="s2">"removed rooms may linger in cache."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="n">zcoords</span> <span class="o">=</span> <span class="p">(</span><span class="n">part</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="n">err</span> <span class="o">=</span> <span class="kc">False</span>
|
||||
<span class="k">for</span> <span class="n">zcoord</span> <span class="ow">in</span> <span class="n">zcoords</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">grid</span><span class="o">.</span><span class="n">get_map</span><span class="p">(</span><span class="n">zcoord</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Mapname/zcoord </span><span class="si">{</span><span class="n">zcoord</span><span class="si">}</span><span class="s2"> is not a part of the grid."</span><span class="p">)</span>
|
||||
<span class="n">err</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
<span class="k">if</span> <span class="n">err</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Valid mapnames/zcoords are</span><span class="se">\n</span><span class="s2">:"</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
|
||||
<span class="n">xymap</span><span class="o">.</span><span class="n">Z</span> <span class="k">for</span> <span class="n">xymap</span> <span class="ow">in</span> <span class="n">grid</span><span class="o">.</span><span class="n">all_rooms</span><span class="p">()))</span>
|
||||
<span class="k">return</span>
|
||||
<span class="n">repl</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s2">"This will delete map(s) {', '.join(zcoords)} and wipe all corresponding</span><span class="se">\n</span><span class="s2">"</span>
|
||||
<span class="s2">"rooms/exits!"</span>
|
||||
<span class="s2">"</span><span class="se">\n</span><span class="s2">Objects/Chars inside deleted rooms will be moved to their home locations."</span>
|
||||
<span class="s2">"</span><span class="se">\n</span><span class="s2">This can't be undone. Are you sure you want to continue? Y/[N]? "</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">repl</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'yes'</span><span class="p">,</span> <span class="s1">'y'</span><span class="p">):</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Aborted."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"Deleting selected xymaps ..."</span><span class="p">)</span>
|
||||
<span class="n">grid</span><span class="o">.</span><span class="n">remove_map</span><span class="p">(</span><span class="o">*</span><span class="n">zcoords</span><span class="p">,</span> <span class="n">remove_objects</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"... done.</span><span class="se">\n</span><span class="s2">Please reload the server to refresh room caches."</span>
|
||||
<span class="s2">"</span><span class="se">\n</span><span class="s2">Also remember to remove any links from remaining maps pointing to deleted maps."</span><span class="p">)</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="xyzcommand"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.launchcmd.html#evennia.contrib.grid.xyzgrid.launchcmd.xyzcommand">[docs]</a><span class="k">def</span> <span class="nf">xyzcommand</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Evennia launcher command. This is made available as `evennia xyzgrid` on the command line,</span>
|
||||
<span class="sd"> once added to `settings.EXTRA_LAUNCHER_COMMANDS`.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">_HELP_SHORT</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="n">option</span><span class="p">,</span> <span class="o">*</span><span class="n">suboptions</span> <span class="o">=</span> <span class="n">args</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">option</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'help'</span><span class="p">,</span> <span class="s1">'h'</span><span class="p">):</span>
|
||||
<span class="n">_option_help</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">option</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'list'</span><span class="p">,</span> <span class="s1">'show'</span><span class="p">):</span>
|
||||
<span class="n">_option_list</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s1">'init'</span><span class="p">:</span>
|
||||
<span class="n">_option_init</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s1">'add'</span><span class="p">:</span>
|
||||
<span class="n">_option_add</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s1">'spawn'</span><span class="p">:</span>
|
||||
<span class="n">_option_spawn</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s1">'initpath'</span><span class="p">:</span>
|
||||
<span class="n">_option_initpath</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="n">option</span> <span class="o">==</span> <span class="s1">'delete'</span><span class="p">:</span>
|
||||
<span class="n">_option_delete</span><span class="p">(</span><span class="o">*</span><span class="n">suboptions</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown option '</span><span class="si">{</span><span class="n">option</span><span class="si">}</span><span class="s2">'. Use 'evennia xyzgrid help' for valid arguments."</span><span class="p">)</span></div>
|
||||
|
||||
</pre></div>
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||||
<li><a href="https://github.com/evennia/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>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="launchcmd.html">1.0-dev (develop 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="clearer"></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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.launchcmd</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,162 +0,0 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>evennia.contrib.grid.xyzgrid.utils — Evennia 1.0-dev 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>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</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" />
|
||||
</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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" accesskey="U">evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.utils</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for evennia.contrib.grid.xyzgrid.utils</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
|
||||
<span class="sd">Helpers and resources for the map system.</span>
|
||||
|
||||
<span class="sd">"""</span>
|
||||
|
||||
<span class="n">BIGVAL</span> <span class="o">=</span> <span class="mi">999999999999</span>
|
||||
|
||||
<span class="n">REVERSE_DIRECTIONS</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"n"</span><span class="p">:</span> <span class="s2">"s"</span><span class="p">,</span>
|
||||
<span class="s2">"ne"</span><span class="p">:</span> <span class="s2">"sw"</span><span class="p">,</span>
|
||||
<span class="s2">"e"</span><span class="p">:</span> <span class="s2">"w"</span><span class="p">,</span>
|
||||
<span class="s2">"se"</span><span class="p">:</span> <span class="s2">"nw"</span><span class="p">,</span>
|
||||
<span class="s2">"s"</span><span class="p">:</span> <span class="s2">"n"</span><span class="p">,</span>
|
||||
<span class="s2">"sw"</span><span class="p">:</span> <span class="s2">"ne"</span><span class="p">,</span>
|
||||
<span class="s2">"w"</span><span class="p">:</span> <span class="s2">"e"</span><span class="p">,</span>
|
||||
<span class="s2">"nw"</span><span class="p">:</span> <span class="s2">"se"</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="n">MAPSCAN</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="s2">"n"</span><span class="p">:</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
|
||||
<span class="s2">"ne"</span><span class="p">:</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
|
||||
<span class="s2">"e"</span><span class="p">:</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
||||
<span class="s2">"se"</span><span class="p">:</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">),</span>
|
||||
<span class="s2">"s"</span><span class="p">:</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">),</span>
|
||||
<span class="s2">"sw"</span><span class="p">:</span> <span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">),</span>
|
||||
<span class="s2">"w"</span><span class="p">:</span> <span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
||||
<span class="s2">"nw"</span><span class="p">:</span> <span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="c1"># errors for Map system</span>
|
||||
|
||||
<div class="viewcode-block" id="MapError"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.utils.html#evennia.contrib.grid.xyzgrid.utils.MapError">[docs]</a><span class="k">class</span> <span class="nc">MapError</span><span class="p">(</span><span class="ne">RuntimeError</span><span class="p">):</span>
|
||||
|
||||
<div class="viewcode-block" id="MapError.__init__"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.utils.html#evennia.contrib.grid.xyzgrid.utils.MapError.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">error</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">node_or_link</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="n">prefix</span> <span class="o">=</span> <span class="s2">""</span>
|
||||
<span class="k">if</span> <span class="n">node_or_link</span><span class="p">:</span>
|
||||
<span class="n">prefix</span> <span class="o">=</span> <span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">node_or_link</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2"> '</span><span class="si">{</span><span class="n">node_or_link</span><span class="o">.</span><span class="n">symbol</span><span class="si">}</span><span class="s2">' "</span>
|
||||
<span class="sa">f</span><span class="s2">"at XYZ=(</span><span class="si">{</span><span class="n">node_or_link</span><span class="o">.</span><span class="n">X</span><span class="si">:</span><span class="s2">g</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">node_or_link</span><span class="o">.</span><span class="n">Y</span><span class="si">:</span><span class="s2">g</span><span class="si">}</span><span class="s2">,</span><span class="si">{</span><span class="n">node_or_link</span><span class="o">.</span><span class="n">Z</span><span class="si">}</span><span class="s2">) "</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">node_or_link</span> <span class="o">=</span> <span class="n">node_or_link</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">message</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">error</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">message</span><span class="p">)</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="MapParserError"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.utils.html#evennia.contrib.grid.xyzgrid.utils.MapParserError">[docs]</a><span class="k">class</span> <span class="nc">MapParserError</span><span class="p">(</span><span class="n">MapError</span><span class="p">):</span>
|
||||
<span class="k">pass</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="MapTransition"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.utils.html#evennia.contrib.grid.xyzgrid.utils.MapTransition">[docs]</a><span class="k">class</span> <span class="nc">MapTransition</span><span class="p">(</span><span class="ne">RuntimeWarning</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Used when signaling to the parser that a link</span>
|
||||
<span class="sd"> leads to another map.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">pass</span></div>
|
||||
</pre></div>
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||||
<li><a href="https://github.com/evennia/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>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="utils.html">1.0-dev (develop 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="clearer"></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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.utils</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,415 +0,0 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>evennia.contrib.grid.xyzgrid.xyzgrid — Evennia 1.0-dev 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>
|
||||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</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" />
|
||||
</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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" accesskey="U">evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.xyzgrid</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for evennia.contrib.grid.xyzgrid.xyzgrid</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">The grid</span>
|
||||
|
||||
<span class="sd">This represents the full XYZ grid, which consists of</span>
|
||||
|
||||
<span class="sd">- 2D `Map`-objects parsed from Map strings and Map-legend components. Each represents one</span>
|
||||
<span class="sd"> Z-coordinate or location.</span>
|
||||
<span class="sd">- `Prototypes` for how to build each XYZ component into 'real' rooms and exits.</span>
|
||||
<span class="sd">- Actual in-game rooms and exits, mapped to the game based on Map data.</span>
|
||||
|
||||
<span class="sd">The grid has three main functions:</span>
|
||||
<span class="sd">- Building new rooms/exits from scratch based on one or more Maps.</span>
|
||||
<span class="sd">- Updating the rooms/exits tied to an existing Map when the Map string</span>
|
||||
<span class="sd"> of that map changes.</span>
|
||||
<span class="sd">- Fascilitate communication between the in-game entities and their Map.</span>
|
||||
|
||||
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.scripts.scripts</span> <span class="kn">import</span> <span class="n">DefaultScript</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">logger</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">variable_from_module</span>
|
||||
<span class="kn">from</span> <span class="nn">.xymap</span> <span class="kn">import</span> <span class="n">XYMap</span>
|
||||
<span class="kn">from</span> <span class="nn">.xyzroom</span> <span class="kn">import</span> <span class="n">XYZRoom</span><span class="p">,</span> <span class="n">XYZExit</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid">[docs]</a><span class="k">class</span> <span class="nc">XYZGrid</span><span class="p">(</span><span class="n">DefaultScript</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Main grid class. This organizes the Maps based on their name/Z-coordinate.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<div class="viewcode-block" id="XYZGrid.at_script_creation"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.at_script_creation">[docs]</a> <span class="k">def</span> <span class="nf">at_script_creation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> What we store persistently is data used to create each map (the legends, names etc)</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="s2">"Manages maps for XYZ-grid"</span></div>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span> <span class="nf">grid</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">grid</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">reload</span><span class="p">()</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">grid</span>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.get_map"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.get_map">[docs]</a> <span class="k">def</span> <span class="nf">get_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">zcoord</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Get a specific xymap.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> zcoord (str): The name/zcoord of the xymap.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> XYMap: Or None if no map was found.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">zcoord</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.all_maps"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.all_maps">[docs]</a> <span class="k">def</span> <span class="nf">all_maps</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Get all xymaps stored in the grid.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: All initialized xymaps stored with this grid.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid</span><span class="o">.</span><span class="n">values</span><span class="p">())</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.log"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.log">[docs]</a> <span class="k">def</span> <span class="nf">log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">log_info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"|grid| </span><span class="si">{</span><span class="n">msg</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.get_room"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.get_room">[docs]</a> <span class="k">def</span> <span class="nf">get_room</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">xyz</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Get one or more room objects from XYZ coordinate.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> xyz (tuple): X,Y,Z coordinate of room to fetch. '*' acts</span>
|
||||
<span class="sd"> as wild cards.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Queryset: A queryset of XYZRoom(s) found.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> XYZRoom.DoesNotExist: If room is not found.</span>
|
||||
|
||||
<span class="sd"> Notes:</span>
|
||||
<span class="sd"> This assumes the room was previously built.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter_xyz</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="n">xyz</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.get_exit"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.get_exit">[docs]</a> <span class="k">def</span> <span class="nf">get_exit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">xyz</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s1">'north'</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Get one or more exit object at coordinate.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> xyz (tuple): X,Y,Z coordinate of the room the</span>
|
||||
<span class="sd"> exit leads out of. '*' acts as a wildcard.</span>
|
||||
<span class="sd"> name (str): The full name of the exit, e.g. 'north' or 'northwest'.</span>
|
||||
<span class="sd"> The '*' acts as a wild card.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Queryset: A queryset of XYZExit(s) found.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">kwargs</span><span class="p">[</span><span class="s1">'db_key'</span><span class="p">]</span> <span class="o">=</span> <span class="n">name</span>
|
||||
<span class="k">return</span> <span class="n">XYZExit</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter_xyz_exit</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="n">xyz</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.maps_from_module"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.maps_from_module">[docs]</a> <span class="k">def</span> <span class="nf">maps_from_module</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">module_path</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Load map data from module. The loader will look for a dict XYMAP_DATA or a list of</span>
|
||||
<span class="sd"> XYMAP_DATA_LIST (a list of XYMAP_DATA dicts). Each XYMAP_DATA dict should contain</span>
|
||||
<span class="sd"> `{"xymap": mapstring, "zcoord": mapname/zcoord, "legend": dict, "prototypes": dict}`.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> module_path (module_path): A python-path to a module containing</span>
|
||||
<span class="sd"> map data as either `XYMAP_DATA` or `XYMAP_DATA_LIST` variables.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: List of zero, one or more xy-map data dicts loaded from the module.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">map_data_list</span> <span class="o">=</span> <span class="n">variable_from_module</span><span class="p">(</span><span class="n">module_path</span><span class="p">,</span> <span class="s2">"XYMAP_DATA_LIST"</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">map_data_list</span><span class="p">:</span>
|
||||
<span class="n">map_data_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">variable_from_module</span><span class="p">(</span><span class="n">module_path</span><span class="p">,</span> <span class="s2">"XYMAP_DATA"</span><span class="p">)]</span>
|
||||
<span class="c1"># inject the python path in the map data</span>
|
||||
<span class="k">for</span> <span class="n">mapdata</span> <span class="ow">in</span> <span class="n">map_data_list</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">mapdata</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Could not find or load map from </span><span class="si">{</span><span class="n">module_path</span><span class="si">}</span><span class="s2">."</span><span class="p">)</span>
|
||||
<span class="k">return</span>
|
||||
<span class="n">mapdata</span><span class="p">[</span><span class="s1">'module_path'</span><span class="p">]</span> <span class="o">=</span> <span class="n">module_path</span>
|
||||
<span class="k">return</span> <span class="n">map_data_list</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.reload"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.reload">[docs]</a> <span class="k">def</span> <span class="nf">reload</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Reload and rebuild the grid. This is done on a server reload.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s2">"(Re)loading grid ..."</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">grid</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">nmaps</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="n">loaded_mapdata</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">changed</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">mapdata</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">mapdata</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">mapdata</span> <span class="o">=</span> <span class="n">mapdata</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
|
||||
<span class="c1"># generate all Maps - this will also initialize their components</span>
|
||||
<span class="c1"># and bake any pathfinding paths (or load from disk-cache)</span>
|
||||
<span class="k">for</span> <span class="n">zcoord</span><span class="p">,</span> <span class="n">old_mapdata</span> <span class="ow">in</span> <span class="n">mapdata</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Loading map '</span><span class="si">{</span><span class="n">zcoord</span><span class="si">}</span><span class="s2">'..."</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># we reload the map from module</span>
|
||||
<span class="n">new_mapdata</span> <span class="o">=</span> <span class="n">loaded_mapdata</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">zcoord</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">new_mapdata</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="s1">'module_path'</span> <span class="ow">in</span> <span class="n">old_mapdata</span><span class="p">:</span>
|
||||
<span class="k">for</span> <span class="n">mapdata</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">maps_from_module</span><span class="p">(</span><span class="n">old_mapdata</span><span class="p">[</span><span class="s1">'module_path'</span><span class="p">]):</span>
|
||||
<span class="n">loaded_mapdata</span><span class="p">[</span><span class="n">mapdata</span><span class="p">[</span><span class="s1">'zcoord'</span><span class="p">]]</span> <span class="o">=</span> <span class="n">mapdata</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c1"># nowhere to reload from - use what we have</span>
|
||||
<span class="n">loaded_mapdata</span><span class="p">[</span><span class="n">zcoord</span><span class="p">]</span> <span class="o">=</span> <span class="n">old_mapdata</span>
|
||||
|
||||
<span class="n">new_mapdata</span> <span class="o">=</span> <span class="n">loaded_mapdata</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">zcoord</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">new_mapdata</span> <span class="o">!=</span> <span class="n">old_mapdata</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="sa">f</span><span class="s2">" XYMap data for Z='</span><span class="si">{</span><span class="n">zcoord</span><span class="si">}</span><span class="s2">' has changed."</span><span class="p">)</span>
|
||||
<span class="n">changed</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">zcoord</span><span class="p">)</span>
|
||||
|
||||
<span class="n">xymap</span> <span class="o">=</span> <span class="n">XYMap</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">new_mapdata</span><span class="p">),</span> <span class="n">Z</span><span class="o">=</span><span class="n">zcoord</span><span class="p">,</span> <span class="n">xyzgrid</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="n">xymap</span><span class="o">.</span><span class="n">parse</span><span class="p">()</span>
|
||||
<span class="n">xymap</span><span class="o">.</span><span class="n">calculate_path_matrix</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">grid</span><span class="p">[</span><span class="n">zcoord</span><span class="p">]</span> <span class="o">=</span> <span class="n">xymap</span>
|
||||
<span class="n">nmaps</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
|
||||
<span class="c1"># re-store changed data</span>
|
||||
<span class="k">for</span> <span class="n">zcoord</span> <span class="ow">in</span> <span class="n">changed</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span><span class="p">[</span><span class="n">zcoord</span><span class="p">]</span> <span class="o">=</span> <span class="n">loaded_mapdata</span><span class="p">[</span><span class="n">zcoord</span><span class="p">]</span>
|
||||
|
||||
<span class="c1"># store</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Loaded and linked </span><span class="si">{</span><span class="n">nmaps</span><span class="si">}</span><span class="s2"> map(s)."</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">loaded</span> <span class="o">=</span> <span class="kc">True</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.add_maps"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.add_maps">[docs]</a> <span class="k">def</span> <span class="nf">add_maps</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">mapdatas</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Add map or maps to the grid.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> *mapdatas (dict): Each argument is a dict structure</span>
|
||||
<span class="sd"> `{"map": <mapstr>, "legend": <legenddict>, "name": <name>,</span>
|
||||
<span class="sd"> "prototypes": <dict-of-dicts>, "module_path": <str>}`. The `prototypes are</span>
|
||||
<span class="sd"> coordinate-specific overrides for nodes/links on the map, keyed with their</span>
|
||||
<span class="sd"> (X,Y) coordinate within that map. The `module_path` is injected automatically</span>
|
||||
<span class="sd"> by self.maps_from_module.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> RuntimeError: If mapdata is malformed.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">for</span> <span class="n">mapdata</span> <span class="ow">in</span> <span class="n">mapdatas</span><span class="p">:</span>
|
||||
<span class="n">zcoord</span> <span class="o">=</span> <span class="n">mapdata</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'zcoord'</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">zcoord</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"XYZGrid.add_map data must contain 'zcoord'."</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span><span class="p">[</span><span class="n">zcoord</span><span class="p">]</span> <span class="o">=</span> <span class="n">mapdata</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.remove_map"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.remove_map">[docs]</a> <span class="k">def</span> <span class="nf">remove_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">zcoords</span><span class="p">,</span> <span class="n">remove_objects</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Remove an XYmap from the grid.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> *zoords (str): The zcoords/XYmaps to remove.</span>
|
||||
<span class="sd"> remove_objects (bool, optional): If the synced database objects (rooms/exits) should</span>
|
||||
<span class="sd"> be removed alongside this map.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># from evennia import set_trace;set_trace()</span>
|
||||
<span class="k">for</span> <span class="n">zcoord</span> <span class="ow">in</span> <span class="n">zcoords</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">zcoord</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">zcoord</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">remove_objects</span><span class="p">:</span>
|
||||
<span class="c1"># we can't batch-delete because we want to run the .delete</span>
|
||||
<span class="c1"># method that also wipes exits and moves content to save locations</span>
|
||||
<span class="k">for</span> <span class="n">xyzroom</span> <span class="ow">in</span> <span class="n">XYZRoom</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter_xyz</span><span class="p">(</span><span class="n">xyz</span><span class="o">=</span><span class="p">(</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">,</span> <span class="n">zcoord</span><span class="p">)):</span>
|
||||
<span class="n">xyzroom</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">reload</span><span class="p">()</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.delete"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.delete">[docs]</a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Clear the entire grid, including database entities, then the grid too.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">mapdata</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span>
|
||||
<span class="k">if</span> <span class="n">mapdata</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">remove_map</span><span class="p">(</span><span class="o">*</span><span class="p">(</span><span class="n">zcoord</span> <span class="k">for</span> <span class="n">zcoord</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">map_data</span><span class="p">),</span> <span class="n">remove_objects</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span></div>
|
||||
|
||||
<div class="viewcode-block" id="XYZGrid.spawn"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.XYZGrid.spawn">[docs]</a> <span class="k">def</span> <span class="nf">spawn</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">xyz</span><span class="o">=</span><span class="p">(</span><span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">,</span> <span class="s1">'*'</span><span class="p">),</span> <span class="n">directions</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Create/recreate/update the in-game grid based on the stored Maps or for a specific Map</span>
|
||||
<span class="sd"> or coordinate.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> xyz (tuple, optional): An (X,Y,Z) coordinate, where Z is the name of the map. `'*'`</span>
|
||||
<span class="sd"> acts as a wildcard.</span>
|
||||
<span class="sd"> directions (list, optional): A list of cardinal directions ('n', 'ne' etc).</span>
|
||||
<span class="sd"> Spawn exits only the given direction. If unset, all needed directions are spawned.</span>
|
||||
|
||||
<span class="sd"> Examples:</span>
|
||||
<span class="sd"> - `xyz=('*', '*', '*')` (default) - spawn/update all maps.</span>
|
||||
<span class="sd"> - `xyz=(1, 3, 'foo')` - sync a specific element of map 'foo' only.</span>
|
||||
<span class="sd"> - `xyz=('*', '*', 'foo') - sync all elements of map 'foo'</span>
|
||||
<span class="sd"> - `xyz=(1, 3, '*') - sync all (1,3) coordinates on all maps (rarely useful)</span>
|
||||
<span class="sd"> - `xyz=(1, 3, 'foo')`, `direction='ne'` - sync only the north-eastern exit</span>
|
||||
<span class="sd"> out of the specific node on map 'foo'.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">z</span> <span class="o">=</span> <span class="n">xyz</span>
|
||||
<span class="n">wildcard</span> <span class="o">=</span> <span class="s1">'*'</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">z</span> <span class="o">==</span> <span class="n">wildcard</span><span class="p">:</span>
|
||||
<span class="n">xymaps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid</span>
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">grid</span> <span class="ow">and</span> <span class="n">z</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">grid</span><span class="p">:</span>
|
||||
<span class="n">xymaps</span> <span class="o">=</span> <span class="p">{</span><span class="n">z</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid</span><span class="p">[</span><span class="n">z</span><span class="p">]}</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"The 'z' coordinate/name '</span><span class="si">{</span><span class="n">z</span><span class="si">}</span><span class="s2">' is not found on the grid."</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># first build all nodes/rooms</span>
|
||||
<span class="k">for</span> <span class="n">zcoord</span><span class="p">,</span> <span class="n">xymap</span> <span class="ow">in</span> <span class="n">xymaps</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="sa">f</span><span class="s2">"spawning/updating nodes for Z='</span><span class="si">{</span><span class="n">zcoord</span><span class="si">}</span><span class="s2">' ..."</span><span class="p">)</span>
|
||||
<span class="n">xymap</span><span class="o">.</span><span class="n">spawn_nodes</span><span class="p">(</span><span class="n">xy</span><span class="o">=</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">))</span>
|
||||
|
||||
<span class="c1"># next build all links between nodes (including between maps)</span>
|
||||
<span class="k">for</span> <span class="n">zcoord</span><span class="p">,</span> <span class="n">xymap</span> <span class="ow">in</span> <span class="n">xymaps</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="sa">f</span><span class="s2">"spawning/updating links for Z='</span><span class="si">{</span><span class="n">zcoord</span><span class="si">}</span><span class="s2">' ..."</span><span class="p">)</span>
|
||||
<span class="n">xymap</span><span class="o">.</span><span class="n">spawn_links</span><span class="p">(</span><span class="n">xy</span><span class="o">=</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">),</span> <span class="n">directions</span><span class="o">=</span><span class="n">directions</span><span class="p">)</span></div></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="get_xyzgrid"><a class="viewcode-back" href="../../../../../api/evennia.contrib.grid.xyzgrid.xyzgrid.html#evennia.contrib.grid.xyzgrid.xyzgrid.get_xyzgrid">[docs]</a><span class="k">def</span> <span class="nf">get_xyzgrid</span><span class="p">(</span><span class="n">print_errors</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Helper for getting the grid. This will create the XYZGrid global script if it didn't</span>
|
||||
<span class="sd"> previously exist.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> print_errors (bool, optional): Print errors directly to console rather than to log.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">xyzgrid</span> <span class="o">=</span> <span class="n">XYZGrid</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">xyzgrid</span><span class="p">:</span>
|
||||
<span class="c1"># create a new one</span>
|
||||
<span class="n">xyzgrid</span><span class="p">,</span> <span class="n">err</span> <span class="o">=</span> <span class="n">XYZGrid</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s2">"XYZGrid"</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">err</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="n">xyzgrid</span><span class="o">.</span><span class="n">reload</span><span class="p">()</span>
|
||||
<span class="k">return</span> <span class="n">xyzgrid</span>
|
||||
<span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">xyzgrid</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="p">(</span><span class="s2">"Warning: More than one XYZGrid instances were found. This is an error and "</span>
|
||||
<span class="s2">"only the first one will be used. Delete the other one(s) manually."</span><span class="p">)</span>
|
||||
<span class="n">xyzgrid</span> <span class="o">=</span> <span class="n">xyzgrid</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">xyzgrid</span><span class="o">.</span><span class="n">ndb</span><span class="o">.</span><span class="n">loaded</span><span class="p">:</span>
|
||||
<span class="n">xyzgrid</span><span class="o">.</span><span class="n">reload</span><span class="p">()</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
|
||||
<span class="k">raise</span>
|
||||
<span class="k">if</span> <span class="n">print_errors</span><span class="p">:</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">xyzgrid</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">err</span><span class="p">))</span>
|
||||
<span class="k">return</span> <span class="n">xyzgrid</span></div>
|
||||
</pre></div>
|
||||
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<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>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||||
<li><a href="https://github.com/evennia/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>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="xyzgrid.html">1.0-dev (develop 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="clearer"></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="nav-item nav-item-0"><a href="../../../../../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-1"><a href="../../../../index.html" >Module code</a> »</li>
|
||||
<li class="nav-item nav-item-2"><a href="../../../../evennia.html" >evennia</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">evennia.contrib.grid.xyzgrid.xyzgrid</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2020, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue