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
item:nanomachines [2015/09/18 11:54]
dean4devil
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 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]]. 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 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 triggered, 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.+See the `nanomachines` section in the config for fine tuning ​to your preference.
  
-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 doIf 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!+To dispose ​of nanomachines,​ the player has to drink [[item:​Grog]]. 
 + 
 +=== 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.
  
 +=== See also ===
 +[[http://​youtu.be/​gl3zGcTh67w |Nanomachines Preview]] (slightly outdated)
  
 Contents Contents
 ----------- -----------
 {{page>​item:​contents&​noheader&​noeditbutton&​nouser&​nofooter}} {{page>​item:​contents&​noheader&​noeditbutton&​nouser&​nofooter}}