mirror of
https://github.com/evennia/evennia.git
synced 2026-03-20 06:46:31 +01:00
Merge branch 'main' into patch-1
This commit is contained in:
commit
8bfab0213d
11 changed files with 15 additions and 14 deletions
|
|
@ -315,4 +315,4 @@ The answer is simply **no**.
|
|||
|
||||
For example, the max dbref value for the default sqlite3 database is `2**64`. If you *created 10 000 new objects every second of every minute of every day of the year it would take about **60 million years** for you to run out of dbref numbers*. That's a database of 140 TeraBytes, just to store the dbrefs, no other data.
|
||||
|
||||
If you are still using Evennia at that point and has this concern, get back to us and we can discuss adding dbref reuse then.
|
||||
If you are still using Evennia at that point and have this concern, get back to us and we can discuss adding dbref reuse then.
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class Character(ComponentHolderMixin, DefaultCharacter):
|
|||
|
||||
Components need to inherit the Component class directly and require a name.
|
||||
```python
|
||||
from evennia.contrib.components import Component
|
||||
from evennia.contrib.base_systems.components import Component
|
||||
|
||||
class Health(Component):
|
||||
name = "health"
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ class RecipeBread(CraftingRecipe):
|
|||
## Adding new recipes
|
||||
|
||||
A *recipe* is a class inheriting from
|
||||
`evennia.contrib.crafting.crafting.CraftingRecipe`. This class implements the
|
||||
`evennia.contrib.game_systems.crafting.CraftingRecipe`. This class implements the
|
||||
most common form of crafting - that using in-game objects. Each recipe is a
|
||||
separate class which gets initialized with the consumables/tools you provide.
|
||||
|
||||
|
|
@ -137,7 +137,7 @@ example setting:
|
|||
```python
|
||||
# in mygame/world/myrecipes.py
|
||||
|
||||
from evennia.contrib.crafting.crafting import CraftingRecipe
|
||||
from evennia.contrib.game_systems.crafting import CraftingRecipe
|
||||
|
||||
class WoodenPuppetRecipe(CraftingRecipe):
|
||||
"""A puppet""""
|
||||
|
|
@ -200,7 +200,7 @@ in-game command:
|
|||
In code we would do
|
||||
|
||||
```python
|
||||
from evennia.contrib.crafting.crafting import craft
|
||||
from evennia.contrib.game_systems.crafting import craft
|
||||
puppet = craft(crafter, "wooden puppet", knife, wood)
|
||||
|
||||
```
|
||||
|
|
@ -259,7 +259,7 @@ parent class and have your recipes inherit from this.
|
|||
|
||||
```python
|
||||
from random import randint
|
||||
from evennia.contrib.crafting.crafting import CraftingRecipe
|
||||
from evennia.contrib.game_systems.crafting import CraftingRecipe
|
||||
|
||||
class SkillRecipe(CraftingRecipe):
|
||||
"""A recipe that considers skill"""
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ Specifically, in `mygame/commands/default_cmdsets.py`:
|
|||
...
|
||||
from evennia.contrib.grid.ingame_map_display import MapDisplayCmdSet # <---
|
||||
|
||||
class CharacterCmdset(default_cmds.Character_CmdSet):
|
||||
class CharacterCmdset(default_cmds.CharacterCmdSet):
|
||||
...
|
||||
def at_cmdset_creation(self):
|
||||
...
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ This module adds no new commands; embed it in your say/emote/whisper commands.
|
|||
### Usage:
|
||||
|
||||
```python
|
||||
from evennia.contrib import rplanguage
|
||||
from evennia.contrib.rpg.rpsystem import rplanguage
|
||||
|
||||
# need to be done once, here we create the "default" lang
|
||||
rplanguage.add_language()
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ object with its own functionality and state tracking.
|
|||
|
||||
Create the button with
|
||||
|
||||
create/drop button:tutorials.red_button.RedButton
|
||||
create/drop button:contrib.tutorials.red_button.RedButton
|
||||
|
||||
Note that you must drop the button before you can see its messages! It's
|
||||
imperative that you press the red button. You know you want to.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ Evmenu.
|
|||
|
||||
Log in as superuser (#1), then run
|
||||
|
||||
batchcommand tutorials.tutorial_world.build
|
||||
batchcommand contrib.tutorials.tutorial_world.build
|
||||
|
||||
Wait a little while for building to complete and don't run the command
|
||||
again even if it's slow. This builds the world and connect it to Limbo
|
||||
|
|
|
|||
|
|
@ -425,7 +425,7 @@ the room it is in.
|
|||
|
||||
On the game command-line, let's create a mirror:
|
||||
|
||||
> create/drop mirror:contrib.tutorial_examples.mirror.TutorialMirror
|
||||
> create/drop mirror:contrib.tutorials.mirror.TutorialMirror
|
||||
|
||||
```{sidebar} Creating objects
|
||||
|
||||
|
|
@ -638,4 +638,4 @@ first function, fixed an error and even searched and talked to a mirror! Being a
|
|||
python inside and outside of the game is an important skill for testing and debugging, but in
|
||||
practice you will be writing most your code in Python modules.
|
||||
|
||||
To that end we also created a first new Python module in the `mygame/` game dir, then imported and used it. Now let's look at the rest of the stuff you've got going on inside that `mygame/` folder ...
|
||||
To that end we also created a first new Python module in the `mygame/` game dir, then imported and used it. Now let's look at the rest of the stuff you've got going on inside that `mygame/` folder ...
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ def init_fill_field(
|
|||
# Initialize menu of selections
|
||||
FieldEvMenu(
|
||||
caller,
|
||||
"evennia.contrib.utils.fieldfill",
|
||||
"evennia.contrib.utils.fieldfill.fieldfill",
|
||||
startnode="menunode_fieldfill",
|
||||
auto_look=False,
|
||||
persistent=persistent,
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ class TestListToString(TestCase):
|
|||
'"1", "2" and "3"', utils.list_to_string([1, 2, 3], endsep="and", addquote=True)
|
||||
)
|
||||
self.assertEqual("1 and 2", utils.list_to_string([1, 2]))
|
||||
self.assertEqual("1, 2", utils.list_to_string([1, 2], endsep=","))
|
||||
|
||||
|
||||
class TestMLen(TestCase):
|
||||
|
|
|
|||
|
|
@ -448,7 +448,7 @@ def iter_to_str(iterable, sep=",", endsep=", and", addquote=False):
|
|||
iterable = tuple(str(val) for val in iterable)
|
||||
|
||||
if endsep:
|
||||
if endsep.startswith(sep):
|
||||
if endsep.startswith(sep) and endsep != sep:
|
||||
# oxford comma alternative
|
||||
endsep = endsep[1:] if len_iter < 3 else endsep
|
||||
elif endsep[0] not in punctuation:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue