Make some minor doc clarifications.

This commit is contained in:
Griatch 2017-02-04 11:10:12 +01:00
parent bac2c0572e
commit 3e6e773939

View file

@ -13,16 +13,19 @@ Usage:
used. used.
A wilderness map needs to created first. There can be different maps, all A wilderness map needs to created first. There can be different maps, all
with their own name. If no name is provided, then a default one is used. with their own name. If no name is provided, then a default one is used. Internally,
the wilderness is stored as a Script with the name you specify. If you don't
specify the name, a script named "default" will be created and used.
@py from evennia.contrib import wilderness; wilderness.create_wilderness() @py from evennia.contrib import wilderness; wilderness.create_wilderness()
Once created, it is possible to move into that wilderness map: Once created, it is possible to move into that wilderness map:
@py from evennia.contrib import wilderness; wilderness.enter_wilderness(me) @py from evennia.contrib import wilderness; wilderness.enter_wilderness(me)
All coordinates used by the wilderness map are in the format of (x, y) All coordinates used by the wilderness map are in the format of `(x, y)`
tuples. x goes from left to right and y goes from bottom to top. So x = 0 tuples. x goes from left to right and y goes from bottom to top. So `(0, 0)`
is on the left and y = 0 is at the bottom of the map. is the bottom left corner of the map.
Customisation: Customisation:
@ -61,6 +64,7 @@ Customisation example:
class PyramidMapProvider(wilderness.WildernessMapProvider): class PyramidMapProvider(wilderness.WildernessMapProvider):
def is_valid_coordinates(self, wilderness, coordinates): def is_valid_coordinates(self, wilderness, coordinates):
"Validates if these coordinates are inside the map"
x, y = coordinates x, y = coordinates
try: try:
lines = map_str.split("\n") lines = map_str.split("\n")
@ -74,21 +78,31 @@ Customisation example:
return False return False
def get_location_name(self, coordinates): def get_location_name(self, coordinates):
"Set the location name"
x, y = coordinates x, y = coordinates
if y == 3: if y == 3:
return "Atop the pyramid." return "Atop the pyramid."
else: else:
return "Inside a pyramid." return "Inside a pyramid."
def at_prepare_room(self, coordinats, caller, room):
"Any other changes done to the room before showing it"
x, y = coordinates
desc = "This is a room in the pyramid.
if y == 3 :
desc = "You can see far and wide from the top of the pyramid."
room.db.desc = desc
``` ```
Now we can use our new pyramid-shaped wilderness map. From inside Evennia: Now we can use our new pyramid-shaped wilderness map. From inside Evennia we
create a new wilderness (with the name "default") but using our new map provider:
``` ```
@py from world import pyramid as p; p.wilderness.create_wilderness(mapprovider=p.PyramidMapProvider()) @py from world import pyramid as p; p.wilderness.create_wilderness(mapprovider=p.PyramidMapProvider())
@py from evennia.contrib import wilderness; wilderness.enter_wilderness(me, coordinates=(4, 1)) @py from evennia.contrib import wilderness; wilderness.enter_wilderness(me, coordinates=(4, 1))
```
```
Implementation details: Implementation details:
When a character moves into the wilderness, they get their own room. If When a character moves into the wilderness, they get their own room. If
@ -741,5 +755,9 @@ class WildernessMapProvider(object):
caller (Object): the object that moved into this room caller (Object): the object that moved into this room
room (WildernessRoom): the room object that will be used at that room (WildernessRoom): the room object that will be used at that
wilderness location wilderness location
Example:
An example use of this would to plug in a randomizer to show different
descriptions for different coordinates, or place a treasure at a special
coordinate.
""" """
pass pass