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.2.0.tar.gz
(21.2 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.2.0.tar.gz.
File metadata
- Download URL: netcrawl_sdk-0.2.0.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0b26d3ef24ab3b6115cd207f930196a4965c82fb1ec1234a6497e670012bbaf
|
|
| MD5 |
bae92001b84ab56d9cf56bca7972bf8d
|
|
| BLAKE2b-256 |
8686907e1ce3d79c1b54a3910a87306d17b06b7a09b0cc53f47eb4d5d3b4f1d7
|
File details
Details for the file netcrawl_sdk-0.2.0-py3-none-any.whl.
File metadata
- Download URL: netcrawl_sdk-0.2.0-py3-none-any.whl
- Upload date:
- Size: 25.7 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 |
8658643c59d626998541136e14d154e22fdc352e66a81241741c086fb0bdac1d
|
|
| MD5 |
5bc2e9ec8fc4894847bc56448545d5d3
|
|
| BLAKE2b-256 |
41d817a66d6e13817b9f82526d310f79540d71fa1d39bdad15121db995de7b46
|