Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
item:nanomachines [2015/09/18 11:56]
dean4devil [Nanomachines]
item:nanomachines [2016/06/06 20:44]
xarses [Nanomachines] update functions to match reality
Line 2: Line 2:
 ============ ============
  
-Nanomachines are a energy-based, ​configurable ​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]].
  
-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 are crafted using the following recipe: +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. Additionally,​ enabling too many inputs at a time has severe negative effects.
-  * 4x chamelium +
-  * 1x WLAN Card +
-  * 1x Tier 2 CPU  +
-  * 1x Acid  +
-  * 1x Tier 1 RAM +
-  * 1x Capacitor+
  
-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.+To dispose ​of nanomachines, the player ​has to drink [[item:​Grog]].
  
-Which input triggers what effect depends on the current configuration of the nanomachines,​ the 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 nanomachines. Beware that enabling too many inputs at a time has severe negative effects on you!+=== 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]]
  
-You'll need to control them using wireless messages, so carrying a tablet with a wireless network card is strongly recommended. Nanomachines will only react to wireless signals emitted by devices no further than two meters ​awaybut they will react to messages ​on **any** portand from **any** ​device!+=== Programming === 
 +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. Howeverthe nanomachines do not check which device ​sent the messages they receive.
  
-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:+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,​ ...)`:
  
-    ​setResponsePort(port:​number) - Set the port nanomachines should send response messages to, for commands that have a response. +- `setResponsePort(port:​number)- Set the port nanomachines should send response messages to, for commands that have a response. 
-    ​dispose() - Destroy all nanomachines ​currently in the player. +- `getPowerState()Request the currently ​stored and maximum stored energy of the nanomachines. 
-    ​reconfigure() - Cause the nanomachines to enter a new configuration+- `getHealth()` - Request the player'​s health state. 
-    getTotalInputCount() - Request ​a message with the total number of available inputs. +- `getHunger()` - Request the player'​s hunger state. 
-    ​getSafeInputCount() - Request ​a message with the number of safe inputs. +- `getAge()` - Request the player'​s age in seconds. 
-    getInput(index:​number) - Request ​a message with the current state of the input with the specified index. +- `getName()` - Request ​the player's display name
-    setInput(index:​number,​ value:​boolean) - Set the state of the input with the specified index to the specified value. +- `getExperience()Request ​the player'​s experience level
-    getActiveEffects() - Request a list of active effects. Note that some effects may not show up in this list. +- `getTotalInputCount()- Request the total number of available inputs. 
-    ​getPowerState() - Request ​message with the currently stored and maximum stored energy ​of the nanomachines.+- `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.
  
-Further information can be taken from [[https://​www.youtube.com/​watch?​v=gl3zGcTh67w | this video.]]+=== See also === 
 +[[https://​www.youtube.com/​watch?​v=gl3zGcTh67w |Nanomachines Preview]] (slightly outdated)
  
 Contents Contents
 ----------- -----------
 {{page>​item:​contents&​noheader&​noeditbutton&​nouser&​nofooter}} {{page>​item:​contents&​noheader&​noeditbutton&​nouser&​nofooter}}