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-1.0.0.tar.gz
(24.9 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-1.0.0.tar.gz.
File metadata
- Download URL: netcrawl_sdk-1.0.0.tar.gz
- Upload date:
- Size: 24.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c3cda5a10f70983a005240f314c4aca3cf1534dd24284e229a0a8d06c971a62
|
|
| MD5 |
9163b710b5b6639a192d5287a548932e
|
|
| BLAKE2b-256 |
1707836e93a5dc012f8a91a7d6d8914f3acdaca941ddee9af48e3b0ba9567acf
|
File details
Details for the file netcrawl_sdk-1.0.0-py3-none-any.whl.
File metadata
- Download URL: netcrawl_sdk-1.0.0-py3-none-any.whl
- Upload date:
- Size: 29.9 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 |
0634de5340ab56785c3538601eea5944eba787bc18d2a1e62479fcd3bc515890
|
|
| MD5 |
ce9d35d3b7e4cc096c3511d0c9e8dc3a
|
|
| BLAKE2b-256 |
96cd56dcf772ad9bf74d202ce1ac7b939748e1c6b804d5bce9c8cb170b5bef0f
|