Custom gameime

Contrib by vlgeoff, 2017 - based on Griatch’s core original

This reimplements the evennia.utils.gametime module but with a custom calendar (unusual number of days per week/month/year etc) for your game world. Like the original, it allows for scheduling events to happen at given in-game times, but now taking this custom calendar into account.

Installation

Import and use this in the same way as you would the normal evennia.utils.gametime module.

Customize the calendar by adding a TIME_UNITS dict to your settings (see example below).

Usage:

    from evennia.contrib.base_systems import custom_gametime

    gametime = custom_gametime.realtime_to_gametime(days=23)

    # scedule an event to fire every in-game 10 hours
    custom_gametime.schedule(callback, repeat=True, hour=10)

The calendar can be customized by adding the TIME_UNITS dictionary to your settings file. This maps unit names to their length, expressed in the smallest unit. Here’s the default as an example:

TIME_UNITS = {
    "sec": 1,
    "min": 60,
    "hr": 60 * 60,
    "hour": 60 * 60,
    "day": 60 * 60 * 24,
    "week": 60 * 60 * 24 * 7,
    "month": 60 * 60 * 24 * 7 * 4,
    "yr": 60 * 60 * 24 * 7 * 4 * 12,
    "year": 60 * 60 * 24 * 7 * 4 * 12, }

When using a custom calendar, these time unit names are used as kwargs to the converter functions in this module. Even if your calendar uses other names for months/weeks etc the system needs the default names internally.


This document page is generated from evennia/contrib/base_systems/custom_gametime/README.md. Changes to this file will be overwritten, so edit that file rather than this one.