From 67db991715a0c2095c5d3a90d52a0c9a6652906e Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 21 Oct 2024 21:10:22 +0200 Subject: [PATCH] Update Changelog, build new contrib docs --- CHANGELOG.md | 4 ++ docs/source/Coding/Changelog.md | 33 +++++++++++++++ docs/source/Contribs/Contrib-Storage.md | 42 +++++++++++++++++++ docs/source/Contribs/Contribs-Overview.md | 19 +++++++-- .../api/evennia.contrib.game_systems.md | 1 + .../evennia.contrib.game_systems.storage.md | 18 ++++++++ ...ia.contrib.game_systems.storage.storage.md | 10 +++++ ...nnia.contrib.game_systems.storage.tests.md | 10 +++++ docs/source/index.md | 2 +- 9 files changed, 134 insertions(+), 5 deletions(-) create mode 100644 docs/source/Contribs/Contrib-Storage.md create mode 100644 docs/source/api/evennia.contrib.game_systems.storage.md create mode 100644 docs/source/api/evennia.contrib.game_systems.storage.storage.md create mode 100644 docs/source/api/evennia.contrib.game_systems.storage.tests.md diff --git a/CHANGELOG.md b/CHANGELOG.md index c46e84f747..92302db559 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,10 @@ Oct 1, 2024 Sep 29, 2024 +> WARNING: Due to a bug in the default Sqlite3 PRAGMA settings, it is +> recommended to not upgrade to this version if you are using Sqlite3. +> Use `4.4.1` or higher instead. + - Feat: Support `scripts key:typeclass` to create global scripts with dynamic keys (rather than just relying on typeclass' key) (Griatch) - [Feat][pull3595]: Tweak Sqlite3 PRAGMAs for better performance (0xDEADFED5) diff --git a/docs/source/Coding/Changelog.md b/docs/source/Coding/Changelog.md index 7ed3c09e34..92302db559 100644 --- a/docs/source/Coding/Changelog.md +++ b/docs/source/Coding/Changelog.md @@ -1,5 +1,34 @@ # Changelog + +## Main branch + +- [Feat][pull3634]: New contrib for in-game `storage` of items in rooms (aMiss-aWry) +- [Feat][pull3636]: Make `cpattr` command also support Attribute categories (aMiss-aWry) +- [Fix][pull3635]: Fix memory leak in Portal Telnet connections, force weak + references to Telnet negotiations, stop LoopingCall on disconnect (a-rodian-jedi) +- [Fix][pull3626]: Typo in `defense_type` in evadventure tutorial (feyrkh) +- [Fix][pull3632]: Made fallback permissions on be set correctly (InspectorCaracal) +- [Fix][pull3639]: Fix `system` command when environment uses a language with + commas for decimal points (aMiss-aWry) +- [Fix][pull3645]: Correct `character_creator` contrib's error return (InspectorCaracal) +- [Fix][pull3640]: Typo fixes for conjugate verbs (aMiss-aWry) +- [Fix][pull3647]: Contents cache didn't reset internal typecache on use of `init` hook (InspectorCaracal) +- [Docs][pull3576]: Rework doc for [Pycharm howto][doc-pycharm] +- Docs updates: feykrh, Griatch + +[pull3626]: https://github.com/evennia/evennia/pull/3626 +[pull3676]: https://github.com/evennia/evennia/pull/3676 +[pull3634]: https://github.com/evennia/evennia/pull/3634 +[pull3632]: https://github.com/evennia/evennia/pull/3632 +[pull3636]: https://github.com/evennia/evennia/pull/3636 +[pull3639]: https://github.com/evennia/evennia/pull/3639 +[pull3645]: https://github.com/evennia/evennia/pull/3645 +[pull3640]: https://github.com/evennia/evennia/pull/3640 +[pull3647]: https://github.com/evennia/evennia/pull/3647 +[pull3635]: https://github.com/evennia/evennia/pull/3635 +[doc-pycharm]: https://www.evennia.com/docs/latest/Coding/Setting-up-PyCharm.html + ## Evennia 4.4.1 Oct 1, 2024 @@ -15,6 +44,10 @@ Oct 1, 2024 Sep 29, 2024 +> WARNING: Due to a bug in the default Sqlite3 PRAGMA settings, it is +> recommended to not upgrade to this version if you are using Sqlite3. +> Use `4.4.1` or higher instead. + - Feat: Support `scripts key:typeclass` to create global scripts with dynamic keys (rather than just relying on typeclass' key) (Griatch) - [Feat][pull3595]: Tweak Sqlite3 PRAGMAs for better performance (0xDEADFED5) diff --git a/docs/source/Contribs/Contrib-Storage.md b/docs/source/Contribs/Contrib-Storage.md new file mode 100644 index 0000000000..fa720ece20 --- /dev/null +++ b/docs/source/Contribs/Contrib-Storage.md @@ -0,0 +1,42 @@ +# Item Storage + +Contribution by helpme (2024) + +This module allows certain rooms to be marked as storage locations. + +In those rooms, players can `list`, `store`, and `retrieve` items. Storages can be shared or individual. + +## Installation + +This utility adds the storage-related commands. Import the module into your commands and add it to your command set to make it available. + +Specifically, in `mygame/commands/default_cmdsets.py`: + +```python +... +from evennia.contrib.game_systems.storage import StorageCmdSet # <--- + +class CharacterCmdset(default_cmds.Character_CmdSet): + ... + def at_cmdset_creation(self): + ... + self.add(StorageCmdSet) # <--- + +``` + +Then `reload` to make the `list`, `retrieve`, `store`, and `storage` commands available. + +## Usage + +To mark a location as having item storage, use the `storage` command. By default this is a builder-level command. Storage can be shared, which means everyone using the storage can access all items stored there, or individual, which means only the person who stores an item can retrieve it. See `help storage` for further details. + +## Technical info + +This is a tag-based system. Rooms set as storage rooms are tagged with an identifier marking them as shared or not. Items stored in those rooms are tagged with the storage room identifier and, if the storage room is not shared, the character identifier, and then they are removed from the grid i.e. their location is set to `None`. Upon retrieval, items are untagged and moved back to character inventories. + +When a room is unmarked as storage with the `storage` command, all stored objects are untagged and dropped to the room. You should use the `storage` command to create and remove storages, as otherwise stored objects may become lost. + +---- + +This document page is generated from `evennia/contrib/game_systems/storage/README.md`. Changes to this +file will be overwritten, so edit that file rather than this one. diff --git a/docs/source/Contribs/Contribs-Overview.md b/docs/source/Contribs/Contribs-Overview.md index f1d7308eaf..232284616e 100644 --- a/docs/source/Contribs/Contribs-Overview.md +++ b/docs/source/Contribs/Contribs-Overview.md @@ -7,7 +7,7 @@ in the [Community Contribs & Snippets][forum] forum. _Contribs_ are optional code snippets and systems contributed by the Evennia community. They vary in size and complexity and may be more specific about game types and styles than 'core' Evennia. -This page is auto-generated and summarizes all **51** contribs currently included +This page is auto-generated and summarizes all **52** contribs currently included with the Evennia distribution. All contrib categories are imported from `evennia.contrib`, such as @@ -37,9 +37,9 @@ If you want to add a contrib, see [the contrib guidelines](./Contribs-Guidelines | [health_bar](#health_bar) | [ingame_map_display](#ingame_map_display) | [ingame_python](#ingame_python) | [ingame_reports](#ingame_reports) | [llm](#llm) | | [mail](#mail) | [mapbuilder](#mapbuilder) | [menu_login](#menu_login) | [mirror](#mirror) | [multidescer](#multidescer) | | [mux_comms_cmds](#mux_comms_cmds) | [name_generator](#name_generator) | [puzzles](#puzzles) | [random_string_generator](#random_string_generator) | [red_button](#red_button) | -| [rpsystem](#rpsystem) | [simpledoor](#simpledoor) | [slow_exit](#slow_exit) | [talking_npc](#talking_npc) | [traits](#traits) | -| [tree_select](#tree_select) | [turnbattle](#turnbattle) | [tutorial_world](#tutorial_world) | [unixcommand](#unixcommand) | [wilderness](#wilderness) | -| [xyzgrid](#xyzgrid) | +| [rpsystem](#rpsystem) | [simpledoor](#simpledoor) | [slow_exit](#slow_exit) | [storage](#storage) | [talking_npc](#talking_npc) | +| [traits](#traits) | [tree_select](#tree_select) | [turnbattle](#turnbattle) | [tutorial_world](#tutorial_world) | [unixcommand](#unixcommand) | +| [wilderness](#wilderness) | [xyzgrid](#xyzgrid) | @@ -288,6 +288,7 @@ Contrib-Gendersub.md Contrib-Mail.md Contrib-Multidescer.md Contrib-Puzzles.md +Contrib-Storage.md Contrib-Turnbattle.md ``` @@ -420,6 +421,16 @@ the puzzle entirely from in-game. +### `storage` + +_Contribution by helpme (2024)_ + +This module allows certain rooms to be marked as storage locations. + +[Read the documentation](./Contrib-Storage.md) - [Browse the Code](evennia.contrib.game_systems.storage) + + + ### `turnbattle` _Contribution by Tim Ashley Jenkins, 2017_ diff --git a/docs/source/api/evennia.contrib.game_systems.md b/docs/source/api/evennia.contrib.game_systems.md index 07ddfa33e1..de3da5f352 100644 --- a/docs/source/api/evennia.contrib.game_systems.md +++ b/docs/source/api/evennia.contrib.game_systems.md @@ -21,6 +21,7 @@ evennia.contrib.game\_systems evennia.contrib.game_systems.mail evennia.contrib.game_systems.multidescer evennia.contrib.game_systems.puzzles + evennia.contrib.game_systems.storage evennia.contrib.game_systems.turnbattle ``` \ No newline at end of file diff --git a/docs/source/api/evennia.contrib.game_systems.storage.md b/docs/source/api/evennia.contrib.game_systems.storage.md new file mode 100644 index 0000000000..82abd8d66a --- /dev/null +++ b/docs/source/api/evennia.contrib.game_systems.storage.md @@ -0,0 +1,18 @@ +```{eval-rst} +evennia.contrib.game\_systems.storage +============================================= + +.. automodule:: evennia.contrib.game_systems.storage + :members: + :undoc-members: + :show-inheritance: + + + +.. toctree:: + :maxdepth: 6 + + evennia.contrib.game_systems.storage.storage + evennia.contrib.game_systems.storage.tests + +``` \ No newline at end of file diff --git a/docs/source/api/evennia.contrib.game_systems.storage.storage.md b/docs/source/api/evennia.contrib.game_systems.storage.storage.md new file mode 100644 index 0000000000..882eaf6984 --- /dev/null +++ b/docs/source/api/evennia.contrib.game_systems.storage.storage.md @@ -0,0 +1,10 @@ +```{eval-rst} +evennia.contrib.game\_systems.storage.storage +==================================================== + +.. automodule:: evennia.contrib.game_systems.storage.storage + :members: + :undoc-members: + :show-inheritance: + +``` \ No newline at end of file diff --git a/docs/source/api/evennia.contrib.game_systems.storage.tests.md b/docs/source/api/evennia.contrib.game_systems.storage.tests.md new file mode 100644 index 0000000000..fccdd5fe58 --- /dev/null +++ b/docs/source/api/evennia.contrib.game_systems.storage.tests.md @@ -0,0 +1,10 @@ +```{eval-rst} +evennia.contrib.game\_systems.storage.tests +================================================== + +.. automodule:: evennia.contrib.game_systems.storage.tests + :members: + :undoc-members: + :show-inheritance: + +``` \ No newline at end of file diff --git a/docs/source/index.md b/docs/source/index.md index 0a55d908c0..ac7c0ad023 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -1,6 +1,6 @@ # Evennia Documentation -This is the manual of [Evennia](https://www.evennia.com), the open source Python `MU*` creation system. Use the Search bar on the left to find or discover interesting articles. This manual was last updated October 01, 2024, see the [Evennia Changelog](Coding/Changelog.md). Latest released Evennia version is 4.4.1. +This is the manual of [Evennia](https://www.evennia.com), the open source Python `MU*` creation system. Use the Search bar on the left to find or discover interesting articles. This manual was last updated October 21, 2024, see the [Evennia Changelog](Coding/Changelog.md). Latest released Evennia version is 4.4.1. - [Introduction](./Evennia-Introduction.md) - what is this Evennia thing? - [Evennia in Pictures](./Evennia-In-Pictures.md) - a visual overview of Evennia