Skip to main content

A library which calculates signals and electricity.

Project description

PowerEngine: A library which calculates signals and electricity.

Installation

python -m pip install powerengine
# OR
python -m pip install git+https://github.com/AaravMalani/powerengine

Usage

from powerengine import Engine
engine = Engine()
engine.add_blocks([
    Power(engine, {}, (0, 0, 0)),
    Wire(engine, {'facing': None}, (0, 0, 1)),
    Wire(engine, {'facing': None}, (0, 0, 2)),
    Delayer(engine, {'facing': 'east', 'delay': 5}, (0, 0, 3)),
    Wire(engine, {'facing': None}, (0, 0, 4)),
])
engine.run(3, ignore_speed=True, output=False) 

Plugin Structure

Each plugin is a directory in the installation/path/plugins directory.

It contains a manifest.json JSON file with the following fields.

Field Type Description
name string Plugin name
version string Plugin version
author (optional) string or array[string] The author of the plugin
blockTypes object[string, array[string]] An object of the screaming snake case version of the name to the block types defined (each block type being an array of [namespace, id])

A plugin is a Python module (it has an __init__.py)

An example plugin would be

main.py

import powerengine
class PizzaBlock(powerengine.Block):
    id = ('pizzamod', 'pizzablock')
    def update(self, engine : powerengine.Engine):
        self.state['facing'] = {
            'north': 'south',
            'east': 'west',
            'south': 'north',
            'west': 'east'
        }[self.state['facing']]

__init__.py

from .main import PizzaBlock

manifest.json

{
    "name": "Pizza Mod",
    "version": "1.0.0",
    "blockTypes": {"PIZZA_BLOCK": ["pizzamod", "pizzablock"]}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

powerengine-1.0.0.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

powerengine-1.0.0-py3-none-any.whl (5.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page