Difference between revisions of "Mesecons speed advices"
m (→Spacing) |
|||
(12 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
This article exists to provide advices on the speed of Mesecons mod devices. | This article exists to provide advices on the speed of Mesecons mod devices. | ||
Please add your ideas to discussion so we have easily-readable list of solutions. | Please add your ideas to discussion so we have easily-readable list of solutions. | ||
+ | |||
+ | Be sure to read [[Mesecons guidelines]] | ||
+ | |||
+ | === Generic advice === | ||
+ | * Please try to make your device as simple as it needs to be. | ||
+ | * Check how your device uses system resources with "/mesecons_hud on" and try to minimize the use. | ||
+ | * Long LuaController code tends to be slower than short one, if there's no cycles. If you can, simply use interrupt with a given time and basic logic. | ||
+ | |||
+ | ==== Sample switcher code ==== | ||
+ | |||
+ | <syntaxhighlight lang="Lua"> | ||
+ | interrupt(2) | ||
+ | port.b = pin.d | ||
+ | port.d = not pin.d | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Wire lengths === | ||
+ | Each mesecon wire changes its style when switching. It means changing the database and interacting with client, plus lots of Lua processing. By minimizing wire lengths, you minimize the processing delay your device adds and vice versa, so please use shorter wires. | ||
+ | |||
+ | Digiline wires partially help. In general, digiline devices are less active and you can speed up some processing using digiline injectors instead of stackwise ones, at least currently. | ||
=== Spacing === | === Spacing === | ||
− | Mesecons devices work after player approaches them and stop | + | Mesecons devices work after player approaches them and stop when player leaves. |
− | When you make a device, you want to put it far enough from others to avoid too | + | When you make a device, you want to put it far away enough from others to avoid too many things working at the same time. |
+ | |||
+ | There's a concept of mapblocks, not a certain block of the map, but a cube containing a number of normal blocks(nodes). It's 16(X) x 16(Y) x 16(Z) nodes. It's best to put the whole device inside one mapblock. | ||
+ | |||
+ | You can see the mapblock you are at with "/mesecons_hud on". | ||
+ | Or using the "/postool" HUD. | ||
+ | |||
+ | See also: | ||
+ | |||
+ | - [[Mesecons_guidelines|Mesecons Guidlines]] | ||
+ | |||
+ | - [https://github.com/SwissalpS/postool postool] | ||
+ | |||
+ | - [[Mesecons_Tutorial|Mesecons Tutorial]] | ||
− | + | - [[Mesecons_debug|Mesecons Debug]] | |
− | + | [[Category:Mesecons]] | |
+ | [[Category:Digiline]] | ||
+ | [[Category:Lua controller]] |
Latest revision as of 08:51, 10 October 2022
This article exists to provide advices on the speed of Mesecons mod devices. Please add your ideas to discussion so we have easily-readable list of solutions.
Be sure to read Mesecons guidelines
Generic advice
- Please try to make your device as simple as it needs to be.
- Check how your device uses system resources with "/mesecons_hud on" and try to minimize the use.
- Long LuaController code tends to be slower than short one, if there's no cycles. If you can, simply use interrupt with a given time and basic logic.
Sample switcher code
interrupt(2)
port.b = pin.d
port.d = not pin.d
Wire lengths
Each mesecon wire changes its style when switching. It means changing the database and interacting with client, plus lots of Lua processing. By minimizing wire lengths, you minimize the processing delay your device adds and vice versa, so please use shorter wires.
Digiline wires partially help. In general, digiline devices are less active and you can speed up some processing using digiline injectors instead of stackwise ones, at least currently.
Spacing
Mesecons devices work after player approaches them and stop when player leaves. When you make a device, you want to put it far away enough from others to avoid too many things working at the same time.
There's a concept of mapblocks, not a certain block of the map, but a cube containing a number of normal blocks(nodes). It's 16(X) x 16(Y) x 16(Z) nodes. It's best to put the whole device inside one mapblock.
You can see the mapblock you are at with "/mesecons_hud on". Or using the "/postool" HUD.
See also:
- postool