Skip to content

SwivelPoint

Ferdinand Calo edited this page Nov 11, 2020 · 7 revisions
# Feature Overview
Kind: Swivel / Rotation Point
Extendable: no
JSON based: no
JSON config: yes

Swivel (or Rotation) Point is a new feature added in FVTM 3.3.x!
It allows to define rotable (and translate-able) "spots" on your vehicle, and you
can assign seats, attributes and parts to it!
They will render/move/work accordingly to the point's position and rotation.

New Swivel/Rotation points can be added to a vehicle via the Vehicle Config directly or Part Configs.

Here a list of current fields a swivel/rotation point config object should/can contain:

  • id - unique id of the point, make sure to have no duplicates and also do not
    call it "vehicle", that one is reserved for the vehicle itself!
  • parent - id of the parent point, if left out it defaults to the vehicle
  • pos - the initial position of the point, relatively to it's parent, JSON Array
  • yaw - optional, initial "yaw" of the point*
  • pitch - optional, initial "pitch" of the point*
  • roll - optional, initial "roll" of the point*,
  • movers - optional, json object OR json array with a list of "movers", example:
    "movers":{
      "custom_attribute_id":"axis",  //simple automatic mover aligning the specific axis to the attribute value
      "control_lever_20":"x",
      "steering_lever_12": "yaw",
      "class": "com.mypackage.mypack.CustomMover.class",  //reference a custom mover implementation
    }
    OR
    "movers":[
      {
        "attribute": "custom_attr_19",
        "var": "y",
        "speed": 0.25 // alignment speed, only avaible when using this config type
      },
      {
        "attribute": "custom_attr_20",
        "var": "yaw",
        "speed": 0.1, // alignment speed, only avaible when using this config type
        "bool_based": true, //when using a tri-state or boolean attribute
        "min": -120,
        "max": 150,
        "def": 20, //default state when the mover is first activated
        "loop": false //if the mover should go to max when reaching min, or the other way around
      },
      {
        "class": "net.somepack.movers.MyCustomMover.class",
        "mydata": 1212323,
        "other": false, // custom data for the custom class
        "some_other": 23.5
      }
    ]

* = feature still in testing/adjustment, values subject to change

Clone this wiki locally