wyvern/README.md
2018-08-13 10:29:18 +01:00

3.4 KiB

Wyvern

A centralized storage management system for Minecraft. Basically Dragon, rewritten for sanity and improved networking/error handling. Requires Plethora Peripherals by SquidDev (as that's what allows item transfer by wired network).

Goals

  1. Support big, multi-user setups.
  2. Work sanely and reliably even in bizarre edge cases.
  3. Be pretty fast.
  4. Function conveniently for end users.
  5. Be relatively easy to connect other systems to.
  6. Allow complex automation.

Setup

installer.lua is recommended for running everything. Get it with wget https://osmarks.tk/git/osmarks/wyvern/raw/branch/master/installer.lua.

Run installer install to download everything. It will open an editor for the config file, allowing setup of a node. When prompted for a program to run on startup, say client to configure it as a client or backend-chests to run the chest backend.

If you just want to update Wyvern, run installer update.

Networking & Hardware

Chests ───────┐
   │          │
Server ─── Buffer
   │          │
   └────┬─────┘
        │
        ├────────── Processing (not implemented yet)
        │
        │
   ┌────┴──┬───────┐
Client  Client  Client
  • Chests is a set of chests and/or shulker boxes, connected via networking cables and modems, to the Server and Buffer. Cookie jars are not compatible.
  • Buffer is a dropper with a wired connection on the chests' side and clients' side.
  • Server is a computer running backend-chests. Other backends may eventually become available. It must be connected to the chests, clients, and both sides of the buffers.
  • Client is a crafty turtle running client. It must be connected to the server and external side of the buffers.
  • Processing will be used for autocrafting systems. It is not yet implemented.

Configuration

Configuration is stored in wyvern_config.tbl in lua table syntax as used by textutils.(un)serialise.

Client

network_name must contain the network name (thing displayed when modem beside it is rightclicked) of the client turtle.

Server

buffer_internal must contain the network name of the buffer on the chest side. buffer_external must contain the network name of the buffer on the client side. modem_internal can contain the network name of the server on the chest side. This is only required if your network contains chests on the client side which are connected.

Warnings

  • Inserting/extracting items manually into/out of chests will result in the index being desynchronised with the actual items. To correct the index, run reindex in the CLI client.
  • If you try and extract items when the storage server is still starting up, it may fail, as not all chests will have been indexed yet.
  • There are currently small problems with extracting certain quantities of items from storage. Yes, it should probably be by stack.
  • Yes, I am kind of using git wrong, but editing networked CC programs sanely is very hard. Tell me if you find a better solution.

Usage

Once configured, the chest backend can just be plugged in and ignored, unless it explodes. For help using the client, run help or h.

Coming Soon(ish) (maybe)

  • Audit log on server - see when items were moved.
  • Overlay glasses/introspection module client.
  • Autocrafting (just a port from Dragon's).
  • Autosmelting (basically autocrafting).