Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
item:nanomachines [2015/09/18 11:47]
dean4devil Added Nanomachines Page
item:nanomachines [2022/07/20 15:30] (current)
gesugao-san Short link from "youtube.com" to "youtu.be".
Line 2: Line 2:
 ============ ============
  
-Nanomachines are a energybased,​ configureable and potentially deadly ​buff system.+**Nanomachines** are a configurable ​buff system. Using energy as a resource, they are able to apply various positive and negative effects to the player.
  
-To "install"​ nanomachines, ​eat them. +=== Basic Usage === 
-Once ingested, a new power indicator in your HUD will indicate how much energy ​your nanomachines have left. (DefaultLeft of item bar)+The player has to "eat" ​them before they can be used. Once ingested, a power indicator in the HUD, positioned left of the item bar, will indicate how much energy ​the nanomachines have left. Their energy can be recharged by standing close to a [[block:Charger]]. Energy is slowly used over time proportional to the number ​of active inputs. A small amount of energy is still lost over time even when all inputs are deactivated.
  
-You can recharge them by standing close ( <1m ) to a charger+They provide a certain number of "​inputs"​ that can be toggled, causing many different effects on the player, ranging from visual effects such as particles spawning near the player, ​to select potion effects and some more rare and special behaviors.
  
-Nanomachines provide a certain number ​of "inputs" ​that can be triggeredcausing ​many different effects on the player, ranging from visual effects such as particles spawning near the player, to select potion ​effects ​and some more rare and special behaviors.+Which input triggers what effect depends on the current configuration ​of the nanomachines,​ the actual ​"connections" ​being random per configuration. Which input does what is not clear to the player until they try it. The configuration ​can be changed by ingesting a new batch of nanomachines. Additionallyenabling too many inputs at a time has severe negative ​effects.
  
-Which input triggers what effect depends on the current configuration of the nanomachinesthe actual "​connections"​ being random per configuration. This means you'll have to try enabling different inputs to see what they do. If you're unhappy with a configuration,​ you can always reconfigure ​your nanomachinesBeware that enabling too many inputs at a time has severe negative effects on you!+See the `nanomachines` section in the config for fine tuning ​to your preference.
  
-You'll need to control them using wireless messages, so carrying a tablet with a wireless network card is strongly recommendedNanomachines will only react to wireless signals emitted by devices no further than two meters away, but they will react to messages on **any** port, and from **any** device!+To dispose of nanomachines,​ the player has to drink [[item:​Grog]].
  
-Nanomachines ​use a simple protocol: each packet consists of multiple parts, the first of which must equal the string "​nanomachines"​. The second part is the command name. Additional parts are parameters for the command. The following ​commands are available:+=== Crafting === 
 +Nanomachines are crafted using the following ​recipe: 
 +  * 4 [[item:​materials#​Chamelium]] 
 +  * 1 [[Wireless Network Card]] 
 +  * 1 [[item:​cpu|Tier 2 CPU]] 
 +  * 1 [[item:​Grog]] 
 +  * 1 [[item:​ram|Tier 1 RAM]] 
 +  * 1 [[block:Capacitor]]
  
-    ​setResponsePort(port:​number) - Set the port nanomachines should send response messages to, for commands that have a response. +=== Programming === 
-    ​dispose() - Destroy all nanomachines ​currently in the player. +Programming the machines happens through wireless messages. The range nanomachines are able to receive messages from is only about two meters, though this can be circumvented easily by using a tablet to send the messages. However, the nanomachines do not check which device sent the messages they receive. 
-    ​reconfigure() - Cause the nanomachines to enter a new configuration+ 
-    getTotalInputCount() - Request ​a message with the total number of available inputs. +Nanomachines react to a simple, proprietary protocol: each packet must consist of multiple parts, the first of which is the "​header"​ and must equal the string `nanomachines`. The second part must be the command name. Additional parts are parameters for the command. The following commands are available, formatted as `commandName(arg1,​ ...)`: 
-    ​getSafeInputCount() - Request ​a message with the number of safe inputs. + 
-    getInput(index:​number) - Request ​a message with the current state of the input with the specified index. +- `setResponsePort(port:​number)- Set the port nanomachines should send response messages to, for commands that have a response. 
-    setInput(index:​number,​ value:​boolean) - Set the state of the input with the specified index to the specified value. +- `getPowerState()Request the currently ​stored and maximum stored energy of the nanomachines. 
-    getActiveEffects() - Request a list of active effects. Note that some effects may not show up in this list. +- `getHealth()` - Request the player'​s health state. 
-    ​getPowerState() - Request ​message with the currently stored and maximum stored energy ​of the nanomachines.+- `getHunger()` - Request the player'​s hunger state. 
 +- `getAge()` - Request the player'​s age in seconds. 
 +- `getName()` - Request ​the player's display name
 +- `getExperience()Request ​the player'​s experience level
 +- `getTotalInputCount()- Request the total number of available inputs. 
 +- `getSafeActiveInputs()- Request the number of *safe* active ​inputs. 
 +- `getMaxActiveInputs()` - Request the number of *maximum* active inputs. 
 +- `getInput(index:​number)- Request the current state of the input with the specified index. 
 +- `setInput(index:​number,​ value:​boolean)- Set the state of the input with the specified index to the specified value. 
 +- `getActiveEffects()- Request a list of active effects. Note that some effects may not show up in this list. 
 +- `saveConfiguration()Requires ​set of nanomachines in the players inventory, will store the current configuration to it.
  
 For example, in OpenOS: For example, in OpenOS:
  
-    ​component.modem.broadcast(1,​ "​nanomachines",​ "​setInput",​ 1, true) will enable the first input. +- `component.modem.broadcast(1,​ "​nanomachines",​ "​setInput",​ 1, true)will enable the first input. 
-    component.modem.broadcast(1,​ "​nanomachines",​ "reconfigure") will reconfigure ​the nanomachines.+- `component.modem.broadcast(1,​ "​nanomachines",​ "getHealth")will get the player'​s health info. 
 + 
 +=== See also === 
 +[[http://​youtu.be/​gl3zGcTh67w |Nanomachines Preview]] (slightly outdated)
  
 +Contents
 +-----------
 +{{page>​item:​contents&​noheader&​noeditbutton&​nouser&​nofooter}}