Evennia 1.3.0 minor release
This commit is contained in:
parent
bc0023072d
commit
d6b5425a9e
7 changed files with 33 additions and 21 deletions
10
CHANGELOG.md
10
CHANGELOG.md
|
|
@ -1,16 +1,18 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## Main branch
|
## Evennia 1.3.0
|
||||||
|
|
||||||
|
Apr 29, 2023
|
||||||
|
|
||||||
- Fix: The username validator did not display errors correctly in web
|
|
||||||
registration form.
|
|
||||||
- Feature: Better ANSI color fallbacks (InspectorCaracal).
|
- Feature: Better ANSI color fallbacks (InspectorCaracal).
|
||||||
- Feature: Add support for saving `deque` with `maxlen` to Attributes (before
|
- Feature: Add support for saving `deque` with `maxlen` to Attributes (before
|
||||||
`maxlen` was ignored).
|
`maxlen` was ignored).
|
||||||
- Tools: More unit tests for scripts (Storsorken)
|
- Fix: The username validator did not display errors correctly in web
|
||||||
|
registration form.
|
||||||
- Fix: Components contrib had issues with inherited typeclasses (ChrisLR)
|
- Fix: Components contrib had issues with inherited typeclasses (ChrisLR)
|
||||||
- Fix: f-string fix in clothing contrib (aMiss-aWry)
|
- Fix: f-string fix in clothing contrib (aMiss-aWry)
|
||||||
- Fix: Have `EvenniaTestCase` properly flush idmapper cache (bradleymarques)
|
- Fix: Have `EvenniaTestCase` properly flush idmapper cache (bradleymarques)
|
||||||
|
- Tools: More unit tests for scripts (Storsorken)
|
||||||
- Docs: Made separate doc pages for Exits, Characters and Rooms. Expanded on how
|
- Docs: Made separate doc pages for Exits, Characters and Rooms. Expanded on how
|
||||||
to change the description of an in-game object with templating.
|
to change the description of an in-game object with templating.
|
||||||
- Docs: A multitude of doc issues and typos fixed.
|
- Docs: A multitude of doc issues and typos fixed.
|
||||||
|
|
|
||||||
|
|
@ -58,10 +58,10 @@ _multiversion-check-env:
|
||||||
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) bash -e checkenv.sh multiversion
|
@EVDIR=$(EVDIR) EVGAMEDIR=$(EVGAMEDIR) bash -e checkenv.sh multiversion
|
||||||
|
|
||||||
_clean_api_index:
|
_clean_api_index:
|
||||||
rm source/api/*
|
rm -f source/api/*
|
||||||
|
|
||||||
_clean_api_rsts:
|
_clean_api_rsts:
|
||||||
rm source/api/*.rst
|
rm -f source/api/*.rst
|
||||||
|
|
||||||
# remove superfluos 'module' and 'package' text from api headers
|
# remove superfluos 'module' and 'package' text from api headers
|
||||||
_reformat_apidoc_headers:
|
_reformat_apidoc_headers:
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,21 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## Main branch
|
## Evennia 1.3.0
|
||||||
|
|
||||||
|
Apr 29, 2023
|
||||||
|
|
||||||
|
- Feature: Better ANSI color fallbacks (InspectorCaracal).
|
||||||
- Feature: Add support for saving `deque` with `maxlen` to Attributes (before
|
- Feature: Add support for saving `deque` with `maxlen` to Attributes (before
|
||||||
`maxlen` was ignored).
|
`maxlen` was ignored).
|
||||||
- Fix: More unit tests for scripts (Storsorken)
|
- Fix: The username validator did not display errors correctly in web
|
||||||
|
registration form.
|
||||||
|
- Fix: Components contrib had issues with inherited typeclasses (ChrisLR)
|
||||||
|
- Fix: f-string fix in clothing contrib (aMiss-aWry)
|
||||||
|
- Fix: Have `EvenniaTestCase` properly flush idmapper cache (bradleymarques)
|
||||||
|
- Tools: More unit tests for scripts (Storsorken)
|
||||||
- Docs: Made separate doc pages for Exits, Characters and Rooms. Expanded on how
|
- Docs: Made separate doc pages for Exits, Characters and Rooms. Expanded on how
|
||||||
to change the description of an in-game object with templating.
|
to change the description of an in-game object with templating.
|
||||||
- Docs: Fixed a multitude of doc issues.
|
- Docs: A multitude of doc issues and typos fixed.
|
||||||
|
|
||||||
## Evennia 1.2.1
|
## Evennia 1.2.1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,26 @@
|
||||||
# Components
|
# Components
|
||||||
|
|
||||||
_Contrib by ChrisLR 2021_
|
Contrib by ChrisLR, 2021
|
||||||
|
|
||||||
# The Components Contrib
|
Expand typeclasses using a components/composition approach.
|
||||||
|
|
||||||
|
## The Components Contrib
|
||||||
|
|
||||||
This contrib introduces Components and Composition to Evennia.
|
This contrib introduces Components and Composition to Evennia.
|
||||||
Each 'Component' class represents a feature that will be 'enabled' on a typeclass instance.
|
Each 'Component' class represents a feature that will be 'enabled' on a typeclass instance.
|
||||||
You can register these components on an entire typeclass or a single object at runtime.
|
You can register these components on an entire typeclass or a single object at runtime.
|
||||||
It supports both persisted attributes and in-memory attributes by using Evennia's AttributeHandler.
|
It supports both persisted attributes and in-memory attributes by using Evennia's AttributeHandler.
|
||||||
|
|
||||||
# Pros
|
## Pros
|
||||||
- You can reuse a feature across multiple typeclasses without inheritance
|
- You can reuse a feature across multiple typeclasses without inheritance
|
||||||
- You can cleanly organize each feature into a self-contained class.
|
- You can cleanly organize each feature into a self-contained class.
|
||||||
- You can check if your object supports a feature without checking its instance.
|
- You can check if your object supports a feature without checking its instance.
|
||||||
|
|
||||||
# Cons
|
## Cons
|
||||||
- It introduces additional complexity.
|
- It introduces additional complexity.
|
||||||
- A host typeclass instance is required.
|
- A host typeclass instance is required.
|
||||||
|
|
||||||
# How to install
|
## How to install
|
||||||
|
|
||||||
To enable component support for a typeclass,
|
To enable component support for a typeclass,
|
||||||
import and inherit the ComponentHolderMixin, similar to this
|
import and inherit the ComponentHolderMixin, similar to this
|
||||||
|
|
@ -126,7 +128,7 @@ from typeclasses.components import health
|
||||||
```
|
```
|
||||||
Both of the above examples will work.
|
Both of the above examples will work.
|
||||||
|
|
||||||
# Full Example
|
## Full Example
|
||||||
```python
|
```python
|
||||||
from evennia.contrib.base_systems import components
|
from evennia.contrib.base_systems import components
|
||||||
|
|
||||||
|
|
@ -134,7 +136,7 @@ from evennia.contrib.base_systems import components
|
||||||
# This is the Component class
|
# This is the Component class
|
||||||
class Health(components.Component):
|
class Health(components.Component):
|
||||||
name = "health"
|
name = "health"
|
||||||
|
|
||||||
# Stores the current and max values as Attributes on the host, defaulting to 100
|
# Stores the current and max values as Attributes on the host, defaulting to 100
|
||||||
current = components.DBField(default=100)
|
current = components.DBField(default=100)
|
||||||
max = components.DBField(default=100)
|
max = components.DBField(default=100)
|
||||||
|
|
@ -185,7 +187,7 @@ class Attack(Command):
|
||||||
# Attempt to retrieve the component, None is obtained if it does not exist.
|
# Attempt to retrieve the component, None is obtained if it does not exist.
|
||||||
if target.components.health:
|
if target.components.health:
|
||||||
valid_target = target
|
valid_target = target
|
||||||
|
|
||||||
if not valid_target:
|
if not valid_target:
|
||||||
caller.msg("You can't attack that!")
|
caller.msg("You can't attack that!")
|
||||||
return True
|
return True
|
||||||
|
|
|
||||||
|
|
@ -111,9 +111,9 @@ Additional color markup styles for Evennia (extending or replacing the default
|
||||||
|
|
||||||
### `components`
|
### `components`
|
||||||
|
|
||||||
__Contrib by ChrisLR 2021__
|
_Contrib by ChrisLR, 2021_
|
||||||
|
|
||||||
# The Components Contrib
|
Expand typeclasses using a components/composition approach.
|
||||||
|
|
||||||
[Read the documentation](./Contrib-Components.md) - [Browse the Code](evennia.contrib.base_systems.components)
|
[Read the documentation](./Contrib-Components.md) - [Browse the Code](evennia.contrib.base_systems.components)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
1.2.1
|
1.3.0
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "evennia"
|
name = "evennia"
|
||||||
version = "1.2.1"
|
version = "1.3.0"
|
||||||
maintainers = [{ name = "Griatch", email = "griatch@gmail.com" }]
|
maintainers = [{ name = "Griatch", email = "griatch@gmail.com" }]
|
||||||
description = "A full-featured toolkit and server for text-based multiplayer games (MUDs, MU*, etc)."
|
description = "A full-featured toolkit and server for text-based multiplayer games (MUDs, MU*, etc)."
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue