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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file powerengine-1.0.0.tar.gz.

File metadata

  • Download URL: powerengine-1.0.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for powerengine-1.0.0.tar.gz
Algorithm Hash digest
SHA256 84f9db496955fa095079f141ede37aeb22f67a230ed18b0bb82a2fe71ce2b808
MD5 b9d320f61a3ec0adea165ed867022ec1
BLAKE2b-256 df327ebabb53e290e16ffbc4c4dd84aeea6a409f26681c6ca999dd55b4e98864

See more details on using hashes here.

File details

Details for the file powerengine-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: powerengine-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for powerengine-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 605748f3fbac3ea2780797443319e755e12b6fed7124f2e8e6d8db3e6cc0efd1
MD5 eb133aa768f0b37d12b430706940f354
BLAKE2b-256 aea4e1a6f578efd282bd71b83b5baaeaa2f056bfe2277a9e1f725dcd851d6647

See more details on using hashes here.

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