mirror of
https://github.com/evennia/evennia.git
synced 2026-03-31 21:17:17 +02:00
Refactor 1.0 docs with new toctree structure and inheritance
This commit is contained in:
parent
62477eac50
commit
628afe9367
142 changed files with 3967 additions and 3024 deletions
|
|
@ -10,7 +10,7 @@ Exactly how many Sessions can interact with an Account and its Puppets at once i
|
|||
Evennia's [MULTISESSION_MODE](./Sessions.md#multisession-mode) setting.
|
||||
|
||||
Apart from storing login information and other account-specific data, the Account object is what is
|
||||
chatting on [Channels](./Communications.md). It is also a good place to store [Permissions](./Locks.md) to be
|
||||
chatting on [Channels](./Channels.md). It is also a good place to store [Permissions](./Locks.md) to be
|
||||
consistent between different in-game characters as well as configuration options. The Account
|
||||
object also has its own [CmdSet](./Command-Sets.md), the `AccountCmdSet`.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
Bootstrap provides many utilities and components you can use when customizing Evennia's web
|
||||
presence. We'll go over a few examples here that you might find useful.
|
||||
> Please take a look at either [the basic web tutorial](../Howto/Starting/Part5/Add-a-simple-new-web-page.md) or
|
||||
>[the web character view tutorial](../Howto/Web-Character-View-Tutorial.md)
|
||||
> Please take a look at either [the basic web tutorial](../Howtos/Beginner-Tutorial/Part5/Add-a-simple-new-web-page.md) or
|
||||
>[the web character view tutorial](../Howtos/Web-Character-View-Tutorial.md)
|
||||
> to get a feel for how to add pages to Evennia's website to test these examples.
|
||||
|
||||
## General Styling
|
||||
|
|
@ -77,4 +77,4 @@ width of the page - Evennia's base site uses the former.
|
|||
### Forms
|
||||
[Forms](https://getbootstrap.com/docs/4.0/components/forms/) are highly customizable with Bootstrap.
|
||||
For a more in-depth look at how to use forms and their styles in your own Evennia site, please read
|
||||
over [the web character gen tutorial.](../Howto/Web-Character-Generation.md)
|
||||
over [the web character gen tutorial.](../Howtos/Web-Character-Generation.md)
|
||||
|
|
@ -26,7 +26,7 @@ on. The tutorial world included with Evennia showcases a dark room that replaces
|
|||
commands with its own versions because the Character cannot see.
|
||||
|
||||
If you want a quick start into defining your first commands and using them with command sets, you
|
||||
can head over to the [Adding Command Tutorial](../Howto/Starting/Part1/Adding-Commands.md) which steps through things
|
||||
can head over to the [Adding Command Tutorial](../Howtos/Beginner-Tutorial/Part1/Adding-Commands.md) which steps through things
|
||||
without the explanations.
|
||||
|
||||
## Defining Command Sets
|
||||
|
|
@ -112,7 +112,7 @@ back even if all other cmdsets fail or are removed. It is always persistent and
|
|||
by `cmdset.delete()`. To remove a default cmdset you must explicitly call `cmdset.remove_default()`.
|
||||
|
||||
Command sets are often added to an object in its `at_object_creation` method. For more examples of
|
||||
adding commands, read the [Step by step tutorial](../Howto/Starting/Part1/Adding-Commands.md). Generally you can
|
||||
adding commands, read the [Step by step tutorial](../Howtos/Beginner-Tutorial/Part1/Adding-Commands.md). Generally you can
|
||||
customize which command sets are added to your objects by using `self.cmdset.add()` or
|
||||
`self.cmdset.add_default()`.
|
||||
|
||||
|
|
@ -215,7 +215,7 @@ included if `no_objs` option is active in the merge stack.
|
|||
`no_objs` option is active in the merge stack.
|
||||
- The cmdsets of Exits in the location. Merge priority `+101`. Will not be included if `no_exits`
|
||||
*or* `no_objs` option is active in the merge stack.
|
||||
- The [channel](./Communications.md) cmdset containing commands for posting to all channels the account
|
||||
- The [channel](./Channels.md) cmdset containing commands for posting to all channels the account
|
||||
or character is currently connected to. Merge priority `+101`. Will not be included if `no_channels`
|
||||
option is active in the merge stack.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,4 @@
|
|||
|
||||
See also:
|
||||
- [Default Commands](./Default-Commands.md)
|
||||
- [Adding Command Tutorial](../Howto/Starting/Part1/Adding-Commands.md)
|
||||
- [Adding Command Tutorial](../Howtos/Beginner-Tutorial/Part1/Adding-Commands.md)
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ object in various ways. Consider a "Tree" object with a cmdset defining the comm
|
|||
|
||||
This page goes into full detail about how to use Commands. To fully use them you must also read the
|
||||
page detailing [Command Sets](./Command-Sets.md). There is also a step-by-step
|
||||
[Adding Command Tutorial](../Howto/Starting/Part1/Adding-Commands.md) that will get you started quickly without the
|
||||
[Adding Command Tutorial](../Howtos/Beginner-Tutorial/Part1/Adding-Commands.md) that will get you started quickly without the
|
||||
extra explanations.
|
||||
|
||||
## Defining Commands
|
||||
|
|
@ -392,7 +392,7 @@ class CmdWait(Command):
|
|||
|
||||
def func(self):
|
||||
"""Command execution."""
|
||||
self.msg("Starting to wait ...")
|
||||
self.msg("Beginner-Tutorial to wait ...")
|
||||
yield 5
|
||||
self.msg("... This shows after 5 seconds. Waiting ...")
|
||||
yield 2
|
||||
|
|
@ -484,7 +484,7 @@ display the "Huh?" error message.
|
|||
matches.
|
||||
- User is not allowed to execute the command (`syscmdkeys.CMD_NOPERM`) - Default is to display the
|
||||
"Huh?" error message.
|
||||
- Channel (`syscmdkeys.CMD_CHANNEL`) - This is a [Channel](./Communications.md) name of a channel you are
|
||||
- Channel (`syscmdkeys.CMD_CHANNEL`) - This is a [Channel](./Channels.md) name of a channel you are
|
||||
subscribing to - Default is to relay the command's argument to that channel. Such commands are
|
||||
created by the Comm system on the fly depending on your subscriptions.
|
||||
- New session connection (`syscmdkeys.CMD_LOGINSTART`). This command name should be put in the
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
# Communications
|
||||
|
||||
TODO: Remove this page?
|
||||
|
||||
- [Channels](./Channels.md) - are used for implementing in-game chat rooms.
|
||||
- [Msg](./Msg.md)-objects are used for storing messages in the database (email-like)
|
||||
and is a building block for implementing other game systems. It's used by the
|
||||
`page` command by default.
|
||||
|
|
@ -5,50 +5,82 @@ than, the doc-strings of each component in the [API](../Evennia-API.md).
|
|||
|
||||
## Database entites
|
||||
|
||||
- [Typeclasses](./Typeclasses.md)
|
||||
- [Sessions](./Sessions.md)
|
||||
- [Acccounts](./Accounts.md)
|
||||
- [Guests](../Concepts/Guest-Logins.md)
|
||||
- [Objects](./Objects.md)
|
||||
- [Scripts](./Scripts.md)
|
||||
- [Channels and Messages](./Communications.md)
|
||||
- [Attributes](./Attributes.md)
|
||||
- [Nicks](./Nicks.md)
|
||||
- [Tags](./Tags.md)
|
||||
- [Spawner and prototypes](./Prototypes.md)
|
||||
- [Help entries](./Help-System.md)
|
||||
```{toctree}
|
||||
:maxdepth: 2
|
||||
|
||||
Typeclasses.md
|
||||
Sessions.md
|
||||
Accounts.md
|
||||
Objects.md
|
||||
Scripts.md
|
||||
Channels.md
|
||||
Msg.md
|
||||
Attributes.md
|
||||
Nicks.md
|
||||
Tags.md
|
||||
Prototypes.md
|
||||
Help-System.md
|
||||
Permissions.md
|
||||
|
||||
```
|
||||
|
||||
## Commands
|
||||
|
||||
- [Available Default Commands](./Default-Commands.md)
|
||||
- [Command system](./Command-System.md)
|
||||
- [Commands](./Commands.md)
|
||||
- [Command-Sets](./Command-Sets.md)
|
||||
- [The Connection Screen](./Connection-Screen.md)
|
||||
- [Batch-Processors](./Batch-Processors.md)
|
||||
- [Batch-Code-Processor](./Batch-Code-Processor.md)
|
||||
- [Batch-Command-Processor](./Batch-Command-Processor.md)
|
||||
```{toctree}
|
||||
:maxdepth: 2
|
||||
|
||||
Command-System.md
|
||||
Commands.md
|
||||
Command-Sets.md
|
||||
Default-Commands.md
|
||||
Connection-Screen.md
|
||||
Batch-Processors.md
|
||||
Batch-Code-Processor.md
|
||||
Batch-Command-Processor.md
|
||||
```
|
||||
|
||||
|
||||
## Utils and tools
|
||||
|
||||
- [Misc Utils](./Coding-Utils.md)
|
||||
- [EvEditor](./EvEditor.md)
|
||||
- [EvMenu](./EvMenu.md)
|
||||
- [EvMore](./EvMore.md)
|
||||
- [MonitorHandler](./MonitorHandler.md)
|
||||
- [TickerHandler](./TickerHandler.md)
|
||||
- [Lock system](./Locks.md)
|
||||
- [FuncParser](./FuncParser.md)
|
||||
```{toctree}
|
||||
:maxdepth: 2
|
||||
|
||||
Coding-Utils.md
|
||||
EvEditor.md
|
||||
EvMenu.md
|
||||
EvMore.md
|
||||
MonitorHandler.md
|
||||
TickerHandler.md
|
||||
Locks.md
|
||||
FuncParser.md
|
||||
```
|
||||
|
||||
## Web components
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 2
|
||||
|
||||
Website.md
|
||||
Web-API.md
|
||||
Web-Admin.md
|
||||
```
|
||||
|
||||
## Server and network
|
||||
|
||||
- [Portal](./Portal-And-Server.md)
|
||||
- [Inputfuncs](./Inputfuncs.md)
|
||||
- [Outputfuncs](./Outputfuncs.md)
|
||||
- [Protocols](../Concepts/Custom-Protocols.md)
|
||||
- [Server](./Server.md)
|
||||
- [Server conf object](../Setup/Server-Conf.md)
|
||||
- [Webserver](./Webserver.md)
|
||||
- [Webclient](./Webclient.md)
|
||||
- [Bootstrap](./Bootstrap-Components-and-Utilities.md)
|
||||
- [Signals](./Signals.md)
|
||||
```{toctree}
|
||||
:maxdepth: 2
|
||||
|
||||
Portal-And-Server.md
|
||||
Inputfuncs.md
|
||||
Outputfuncs.md
|
||||
Server.md
|
||||
Setup/Server-Conf.md
|
||||
Webserver.md
|
||||
Webclient.md
|
||||
Bootstrap-Components-and-Utilities.md
|
||||
Signals.md
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1115,7 +1115,7 @@ function - for example you can't use other Python keywords like `if` inside the
|
|||
|
||||
Unless you are dealing with a relatively simple dynamic menu, defining menus with lambda's is
|
||||
probably more work than it's worth: You can create dynamic menus by instead making each node
|
||||
function more clever. See the [NPC shop tutorial](../Howto/NPC-shop-Tutorial.md) for an example of this.
|
||||
function more clever. See the [NPC shop tutorial](../Howtos/NPC-shop-Tutorial.md) for an example of this.
|
||||
|
||||
|
||||
## Ask for simple input
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ offers effective error checking, searches and conversion.
|
|||
In a command definition you can reach the nick handler through `self.caller.nicks`. See the `nick`
|
||||
command in `evennia/commands/default/general.py` for more examples.
|
||||
|
||||
As a last note, The Evennia [channel](./Communications.md) alias systems are using nicks with the
|
||||
As a last note, The Evennia [channel](./Channels.md) alias systems are using nicks with the
|
||||
`nick_type="channel"` in order to allow users to create their own custom aliases to channels.
|
||||
|
||||
# Advanced note
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ free up the *category* property for any use you desire.
|
|||
## Adding/Removing Tags
|
||||
|
||||
You can tag any *typeclassed* object, namely [Objects](./Objects.md), [Accounts](./Accounts.md),
|
||||
[Scripts](./Scripts.md) and [Channels](./Communications.md). General tags are added by the *Taghandler*. The
|
||||
[Scripts](./Scripts.md) and [Channels](./Channels.md). General tags are added by the *Taghandler*. The
|
||||
tag handler is accessed as a property `tags` on the relevant entity:
|
||||
|
||||
```python
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ may store.
|
|||
When testing, you can stop all tickers in the entire game with `tickerhandler.clear()`. You can also
|
||||
view the currently subscribed objects with `tickerhandler.all()`.
|
||||
|
||||
See the [Weather Tutorial](../Howto/Weather-Tutorial.md) for an example of using the TickerHandler.
|
||||
See the [Weather Tutorial](../Howtos/Weather-Tutorial.md) for an example of using the TickerHandler.
|
||||
|
||||
### When *not* to use TickerHandler
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
# Typeclasses
|
||||
|
||||
|
||||
*Typeclasses* form the core of Evennia data storage. It allows Evennia to represent any number of
|
||||
*Typeclasses* form the core of Evennia's data storage. It allows Evennia to represent any number of
|
||||
different game entities as Python classes, without having to modify the database schema for every
|
||||
new type.
|
||||
|
||||
|
|
@ -193,7 +192,7 @@ database.
|
|||
|
||||
Each of the typeclassed entities then extend this list with their own properties. Go to the
|
||||
respective pages for [Objects](./Objects.md), [Scripts](./Scripts.md), [Accounts](./Accounts.md) and
|
||||
[Channels](./Communications.md) for more info. It's also recommended that you explore the available
|
||||
[Channels](./Channels.md) for more info. It's also recommended that you explore the available
|
||||
entities using [Evennia's flat API](../Evennia-API.md) to explore which properties and methods they have
|
||||
available.
|
||||
|
||||
|
|
@ -245,7 +244,7 @@ matches = ScriptDB.objects.filter(db_key__contains="Combat")
|
|||
When querying from the database model parent you don't need to use `filter_family` or `get_family` -
|
||||
you will always query all children on the database model.
|
||||
|
||||
# Updating existing typeclass instances
|
||||
## Updating existing typeclass instances
|
||||
|
||||
If you already have created instances of Typeclasses, you can modify the *Python code* at any time -
|
||||
due to how Python inheritance works your changes will automatically be applied to all children once
|
||||
|
|
@ -317,7 +316,7 @@ The arguments to this method are described [in the API docs
|
|||
here](github:evennia.typeclasses.models#typedobjectswap_typeclass).
|
||||
|
||||
|
||||
# How typeclasses actually work
|
||||
## How typeclasses actually work
|
||||
|
||||
*This is considered an advanced section.*
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue