3.6 KiB
Networks [networks]
A library to build and manage networks based on tubelib2 tubes, pipes, or cables.
Power Networks
Power networks consists of following node types:
- Generators, nodes providing power
- Consumers, nodes consuming power
- Storage nodes, nodes storing power
- Cables, to build power connections
- Junctions, to connect point to point connection to networks
- Switches, to turn on/off network segments
All storage nodes in a network form a storage system. Storage systems are required as buffers. Generators "charge" the storage system, consumers "discharge" the storage system.
Charging the storage system follows a degressive/adaptive charging curve. When the storage system e.g. is 80% full, the charging load is continuously reduced. This ensures that all generators are loaded in a balanced manner.
Cables, junctions, and switches can be hidden under blocks (plastering)
and opened again with a tool.
This makes power installations in buildings more realistic.
The mod uses a whitelist for filling material. The function
networks.register_filling_items
is used to register node names.
Liquid Networks
Liquid networks consists of following node types:
- Pumps, nodes pumping liquids from/to tanks
- Tanks, storuing liquids
- Junctions, to connect pipes to networks
- Valves, to turn on/off pipe segments
Control
In addition to any network the 'control' API can be used to send commands or request data from nodes, specified via 'node_type'.
Test Nodes
The file ./test/test_power.lua
contains test nodes of each kind of power nodes.
It can be used to play with the features and to study the use of networks
.
- [G] a generator, which provides 20 units of power every 2 s
- [C] a consumer, which need 5 units of power every 2 s
- [S] a storage with 500 units capacity
All three nodes can be turned on/off by right-clicking.
- cable node for power transportation
- junction node for power distribution
- a power switch to turn on/off consumers
- a tool to hide/open cables and junctions
The file ./test/test_liquid.lua
contains test nodes of each kind of liquid nodes.
- [P] a pump which pumps 2 items every 2 s
- [T] tree types of tanks (empty, milk, water)
- junction node
- a value to connect/disconnect pipes
The file ./test/test_control.lua
contains server [S] and client [C] nodes
to demonstrate simple on/off commands.
All this testing nodes can be enabled via mod settings networks_test_enabled = true
in minetest.conf
License
Copyright (C) 2021-2023 Joachim Stolberg
Code: Licensed under the GNU AGPL version 3 or later. See LICENSE.txt
Textures: CC BY-SA 3.0
Dependencies
Required: tubelib2
History
2021-05-23 V0.01
- First shot
2021-05-24 V0.02
- Add switch
- Add tool and hide/open feature
- bug fixes and improvements
2021-05-25 V0.03
- Add function
networks.get_power_data
- bug fixes and improvements
2021-05-29 V0.04
- bug fixes and improvements
2021-05-30 V0.05
- Change power API
2021-06-03 V0.06
- Add 'liquid'
- bug fixes and improvements
2021-06-04 V0.07
- Add 'control' API
2021-07-06 V0.08
- Add 'transfer' functions to the 'power' API
2021-07-23 V0.09
- bug fixes and improvements
2021-09-18 V0.10
- Add support for colored cables (PR #1 by Thomas--S)
2022-01-06 V0.11
- Support for junction rotation added
2022-09-10 V0.12
- New API function
networks.liquid.get_liquids
added
2023-02-19 V0.13
- New API function
networks.power.get_storage_percent
added