Python SDK for NetCrawl — the programmable idle game
Project description
netcrawl Python SDK
Write NetCrawl workers in Python. Workers communicate with the local game server over HTTP.
Install
pip install .
Quick start
from netcrawl import WorkerClass, Route
from netcrawl.items.equipment import Pickaxe
class Collector(WorkerClass):
"""Harvests ore and returns to hub."""
pickaxe = Pickaxe()
to_mine = Route("Path from Hub to ore node")
to_hub = Route("Return path back to Hub")
def on_startup(self):
self.trips = 0
def on_loop(self):
self.move_through(self.to_mine)
self.collect()
self.move_through(self.to_hub)
self.deposit()
self.trips += 1
Field types
| Field | Description |
|---|---|
Pickaxe() |
Consumes 1 Pickaxe from inventory at deploy time |
Shield() |
Consumes 1 Shield from inventory at deploy time |
Beacon() |
Consumes 1 Beacon from inventory at deploy time |
Route("description") |
User specifies a list of node IDs in the UI |
Worker API
| Method | Description |
|---|---|
self.move(node_id) |
Move to adjacent node (blocking) |
self.move_through(route) |
Walk a list of node IDs in order |
self.collect() / self.harvest() |
Harvest resources at current node |
self.deposit() |
Deposit carried resources at Hub |
self.scan() |
Scan adjacent nodes |
self.repair(node_id) |
Repair an infected adjacent node |
self.info/warn/error(msg) |
Log a message (visible in UI) |
self.current_node |
Current node ID (property) |
self.carrying |
Currently held resources (property) |
AdvancedGraphGadget mixin
from netcrawl.mixins.graph import AdvancedGraphGadget
class Explorer(WorkerClass, AdvancedGraphGadget):
def on_loop(self):
self.travel_to("r3") # A* pathfinding
nearest = self.find_nearest("ore")
nodes = self.explore() # wide-radius scan
Schema introspection
print(Collector.get_schema())
Running examples
cd packages/sdk-python
python examples/test_sdk.py
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
netcrawl_sdk-0.8.0.tar.gz
(24.3 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 netcrawl_sdk-0.8.0.tar.gz.
File metadata
- Download URL: netcrawl_sdk-0.8.0.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce4e39099381c8e074faecadae6a0bbf1656e337123648d29a19963c2e3a3810
|
|
| MD5 |
2d512d9a36c44cc53dd44189f78e37ac
|
|
| BLAKE2b-256 |
2eb39da4c79292c3e0d46ae372a3e13ad2131f9a1c7e0bf840c7b660e39c0348
|
File details
Details for the file netcrawl_sdk-0.8.0-py3-none-any.whl.
File metadata
- Download URL: netcrawl_sdk-0.8.0-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5a6c60c42e76791a192b0ed97afe299b3f24a1fb98a3a8aed63073d40b363da
|
|
| MD5 |
8142f66aaaec3b38c3263b7bc3d6e61b
|
|
| BLAKE2b-256 |
b4e1bfa509205bc2a83459f623cfed799437bcd23629f08473460fee26cc4260
|