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.2.0.tar.gz
(25.4 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.2.0.tar.gz.
File metadata
- Download URL: netcrawl_sdk-1.2.0.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01f23f6b36f98394ed78dc0a51ba4c64115234b4207162e466ce05e019722ade
|
|
| MD5 |
26ee02a0ab10ec8049985c7404db186d
|
|
| BLAKE2b-256 |
9add758aa512ce8b5ba115fee151cbda4ffdf923474295f6cf78b77df7e92b05
|
File details
Details for the file netcrawl_sdk-1.2.0-py3-none-any.whl.
File metadata
- Download URL: netcrawl_sdk-1.2.0-py3-none-any.whl
- Upload date:
- Size: 30.4 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 |
423c7744fadb5700238da22406fec35591b6ff7449c2b4858f999127a42b65e8
|
|
| MD5 |
f396b112cf94cf4bfcbd8b81e78f05db
|
|
| BLAKE2b-256 |
6dea96f278c3398e95833d833c620c4a6295ff580eaa15b99f2b35c46bc2927c
|