0 && requested_amount_of_energy>0) { var amount = Math.min(requested_amount_of_energy, this.energy); recipient.energy += amount; this.energy -= amount; } Calling this function from inside the collision handler to transfer energy between colliding parts automatically adds the relevant MechPart references, as if transferEnergyToPart was called, i.e. Collision.Creature1.transferEnergyTo(Collision.Creature2, e); is equivalent to: Collision.Creature1.transferEnergyToPart(Collision.Part1, Collision.Creature2, Collision.Part2, e); When this behavior is not intended, explicit nulls in transferEnergyToPart() can be used to avoid associating the energy transfer with the currently colliding parts, like this: Collision.Creature1.transferEnergyToPart(null, Collision.Creature2, null, e);]]> 0, body constructs of creatures (position of Parts) will be randomly disturbed when they are created.]]> a;]]> key=value instead of object.set("key",value) Note the difference in the returned value: var old_value=object.set("key",new_value); //'old_value' gets the value previously associated with "key" var x=object["key"]=new_value; //'x' becomes 'new_value', consistently with the semantics of the assignment operator. The value previously associated with "key" is lost.]]> returns 0 or 1.]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0)]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part ]]> children are averaged parents. 0.8 => children are only 20% different from parents. 1.0 => each child is identical to one parent (no crossover).]]> children are averaged parents. 0.8 => children are only 20% different from parents. 1.0 => each child is identical to one parent (no crossover).]]> area=mg.area(); ]]> The neuron icon for use in NN diagrams, encoded as a comma-separated sequence of integer numbers.
  • N = the total number of all numbers following this one
  • NS = the number of line sequences
      repeated NS times:
    • NL = number of line segments (creating a polyline)
    • X,Y (repeated NL+1 times) - subsequent line segment coordinates, each line should fit in a 100x100 square
      - neuron input connections will be drawn at X=25 (varying Y for multiple inputs, Y=50 for a single input)
      - neuron output connection will be drawn at (X=75,Y=50)

Example:
16,2,3,25,50, 40,30, 60,30, 75,50,1,40,50, 60,50
N = 16 numbers following this oneNS = 2 line sequencesNL = the first sequence has 3 segmentscoordinates for 3 line segments = 4 endpoints = 8 numbersNL = the second sequence has 1 segmentcoordinates for 1 line segment

See also: a script for creating *.neuro icon from SVG
Compatibility: this field is called "icon" in *.neuro files.]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0)]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part ]]> Standard handling will be used (1 is one of the lower 16 bits) - food and food: collision value = 0x20002 & 0x10002 = 2 -> As above. - creature and food: collision value = (0x10001 & 0x10002) or (0x20002 & 0x20001) = 0x10000 or 0x20000 -> Custom handling will be used (the result falls into higher 16 bits). Instead of manually calculating mask values, you can use this interactive graphical helper: http://www.framsticks.com/files/apps/js/population-mask-helper/index.html]]> in such cases). Examples: (switch to "Automatic" mode to see labels, then remove the label formula and compare the effect) return "x"; return "val="+Signal.value; return "power="+Signal.power;]]> [seed] To generate a custom landscape, provide height values: m[scaling] digits... or M[scaling] numbers... "digits..." is a sequence of integer values 0,1,2,..,9. You may also use '-' and '|' characters for smooth slides between blocks. "numbers..." is a sequence of floating point values, so the "M" option provides more freedom. [scaling] is an optional linear scaling expression in the form of *FACTOR+OFFSET or *FACTOR-OFFSET, for example "r*0.1-2 5 5" creates a 5x5 random map with a 10% amplitude, shifted down by 2. See also the WorldMap object.]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0)]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part ]]> children are averaged parents. 0.8 => children are only 20% different from parents. 1.0 => each child is identical to one parent (no crossover).]]> children are averaged parents. 0.8 => children are only 20% different from parents. 1.0 => each child is identical to one parent (no crossover).]]> 0, body constructs of creatures (position of Parts) will be randomly disturbed when they are created.]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part Properties: Range (r) float 0..1 (default 1) rotation.y (ry) float -6.282..6.282 (default 0) rotation.z (rz) float -6.282..6.282 (default 0)]]> 0=pressing, value depends on the force applied (not implemented in ODE mode) Characteristics: does not use inputs provides output value should be located on a Part ]]> 0 then the number of running simulations can be outdated in the very moment you read this field, because the expdef can stop itself anytime. If running==0, then it is guaranteed to stay 0 until someone calls start() on some of the slave simulator objects.]]> [seed] To generate a custom landscape, provide height values: m[scaling] digits... or M[scaling] numbers... "digits..." is a sequence of integer values 0,1,2,..,9. You may also use '-' and '|' characters for smooth slides between blocks. "numbers..." is a sequence of floating point values, so the "M" option provides more freedom. [scaling] is an optional linear scaling expression in the form of *FACTOR+OFFSET or *FACTOR-OFFSET, for example "r*0.1-2 5 5" creates a 5x5 random map with a 10% amplitude, shifted down by 2. See also the WorldMap object.]]> 0 && requested_amount_of_energy>0) { var amount = Math.min(requested_amount_of_energy, this.energy); recipient.energy += amount; this.energy -= amount; } Calling this function from inside the collision handler to transfer energy between colliding parts automatically adds the relevant MechPart references, as if transferEnergyToPart was called, i.e. Collision.Creature1.transferEnergyTo(Collision.Creature2, e); is equivalent to: Collision.Creature1.transferEnergyToPart(Collision.Part1, Collision.Creature2, Collision.Part2, e); When this behavior is not intended, explicit nulls in transferEnergyToPart() can be used to avoid associating the energy transfer with the currently colliding parts, like this: Collision.Creature1.transferEnergyToPart(null, Collision.Creature2, null, e);]]> list.addItem("string item"); GUI->list.addItem(["item text","picture"]);]]> list.items=function listfun; GUI->list.item_count=1000; function listfun(i) {return "Item #"+i;}]]> mylabel) GUI.newLabel("mylabel",); GUI->mylabel.text=list_element.getItem(list_index); }]]> mylabel.rect=GUI.rect; }]]>