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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
84f9db496955fa095079f141ede37aeb22f67a230ed18b0bb82a2fe71ce2b808
|
|
| MD5 |
b9d320f61a3ec0adea165ed867022ec1
|
|
| BLAKE2b-256 |
df327ebabb53e290e16ffbc4c4dd84aeea6a409f26681c6ca999dd55b4e98864
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
605748f3fbac3ea2780797443319e755e12b6fed7124f2e8e6d8db3e6cc0efd1
|
|
| MD5 |
eb133aa768f0b37d12b430706940f354
|
|
| BLAKE2b-256 |
aea4e1a6f578efd282bd71b83b5baaeaa2f056bfe2277a9e1f725dcd851d6647
|