Skip to content

Instantly share code, notes, and snippets.

@tvagames
Last active December 12, 2024 23:48
Show Gist options
  • Select an option

  • Save tvagames/9c7c29ec749c85ecab87cc74624dd34b to your computer and use it in GitHub Desktop.

Select an option

Save tvagames/9c7c29ec749c85ecab87cc74624dd34b to your computer and use it in GitHub Desktop.
Visual Studio Code user snippet for "From The Depths"
{
// snipet v3.0
// FtD v2.4.5.6
// 2018 (c) Torikame Autovehicle Industry. co., ltd.
// Logging/Debugging
"I:Log(message)": {
"prefix": "ftd:Log",
"body": [
"I:Log('${1:message}')",
"$2"
],
"description": "Inputs: message: [string]|the message you want to write to the log.\n\nOutputs: N/A\n\nWrites a message to the log. Log is visible when editing the LUA box and appears in the 'Errors/Log' panel. The last 100 log messages are maintained."
},
"I:ClearLogs()": {
"prefix": "ftd:ClearLogs",
"body": [
"I:ClearLogs()"
,"$2"
],
"description": "Inputs: N/A\n\nOutputs: N/A\n\nClears your log. Pretty harmless!"
},
"I:LogToHud(message)": {
"prefix": "ftd:LogToHud",
"body": [
"I:LogToHud('${1:message}')"
,"$2"
],
"description": "Inputs: message [string]: the message you want to write to the HUD.\n\nOutputs: N/A\n\nWrites a message to the HUD. HUD messages are visible during normal play and when on the map.|"
},
// Fleet Awareness
"I.FleetIndex (read only)": {
"prefix": "ftd.FleetIndex",
"body": [
"I.FleetIndex"
],
"description": "\nOutputs: [int] Position of the ship in the fleet, starting from 0.\n\nReturns the index of the ship in the fleet. Starts at 0."
},
"I.Fleet (read only)": {
"prefix": "ftd.Fleet",
"body": [
"I.Fleet"
],
"description": "\nOutputs: [FleetInfo] Information about the fleet\n\nReturns the current state of the fleet."
},
"I.IsFlagship (read only)": {
"prefix": "ftd.IsFlagship",
"body": [
"I.IsFlagship"
],
"description": "\nOutputs: [bool] Is the craft the fleet flagship?\n\nUsed to determine whether the ship is a flagship of a fleet."
},
"I.Waypoint": {
"prefix": "ftd.Waypoint",
"body": [
"I.Waypoint"
],
"description": "\nOutputs: [Vector3] 自身が旗艦のとき非実体化時の座標.それ以外では旗艦の位置で非実体化した時の自身の座標位置…?艦隊を組むのに使えるかも…?waypointの次の座標が示される?"
},
"I.IdealFleetPosition": {
"prefix": "ftd.IdealFleetPosition",
"body": [
"I.IdealFleetPosition"
],
"description": "\nOutputs: [Vector3] 非実体化時の旗艦から見た座標.ローカル座標系."
},
"I.IdealFleetRotation": {
"prefix": "ftd.IdealFleetRotation",
"body": [
"I.IdealFleetRotation"
],
"description": "\nOutputs: [Quarternion] 非実体化時の旗艦からみた姿勢?ローカル座標系?"
},
// FleetInfo
"Freetinfo.ID": {
"prefix": "ftdFreetinfo.ID",
"body": [
"${1:Freetinfo}.ID"
],
"description": "ID [int]: Unique ID of the fleet."
},
"Freetinfo.Name": {
"prefix": "ftdFreetinfo.Name",
"body": [
"${1:Freetinfo}.Name"
],
"description": "Name [string]: Name of the fleet."
},
"Freetinfo.Flagship": {
"prefix": "ftdFreetinfo.Flagship",
"body": [
"${1:Freetinfo}.Flagship"
],
"description": "Flagship [Friendlyinfo]: Information about the flagship of the fleet."
},
"Freetinfo.Members": {
"prefix": "ftdFreetinfo.Members",
"body": [
"${1:Freetinfo}.Members"
],
"description": "Members [FriendlyInfo[]]: A table of information regarding the fleet's members. MAY CONTAIN NILS!"
},
// Resources
"I.ResourceZones (read only)": {
"prefix": "ftd.ResourceZones",
"body": [
"I.ResourceZones"
],
"description": "\nOutputs: [ResourceZoneinfo[]] List of ResourceZones\n\nReturns a Lua table containing a list of known resource zones."
},
"I.Resources (read only)": {
"prefix": "ftd.Resources",
"body": [
"I.Resources"
],
"description": "\nOutputs: [ResourceInfo] Ship resource data\n\nReturns information about a ship's available resources."
},
// ResourceZoneInfo
"ResourceZoneinfo.Id": {
"prefix": "ftdResourceZoneinfo.Id",
"body": [
"${1:ResourceZoneinfo}.Id"
],
"description": "Id [int]: Unique ID of the Resource Zone"
},
"ResourceZoneinfo.Name": {
"prefix": "ftdResourceZoneinfo.Name",
"body": [
"${1:ResourceZoneinfo}.Name"
],
"description": "Name [string]: Name of the Resource Zone"
},
"ResourceZoneinfo.Position": {
"prefix": "ftdResourceZoneinfo.Position",
"body": [
"${1:ResourceZoneinfo}.Position"
],
"description": "Position [Vector3]: Position of the Resource Zone"
},
"ResourceZoneinfo.Radius": {
"prefix": "ftdResourceZoneinfo.Radius",
"body": [
"${1:ResourceZoneinfo}.Radius"
],
"description": "Radius [float]: Radius of the Resource Zone"
},
"ResourceZoneinfo.Resources": {
"prefix": "ftdResourceZoneinfo.Resources",
"body": [
"${1:ResourceZoneinfo}.Resources"
],
"description": "Resources [ResourceInfo]: Available resources of the Resource Zone"
},
// ResourceInfo
"ResourceInfo.CrystalTotal": {
"prefix": "ftdResourceInfo.CrystalTotal",
"body": [
"${1:ResourceInfo}.CrystalTotal"
],
"description": "CrystalTotal [float]: Total Crystal resources."
},
"ResourceInfo.CrystalMax": {
"prefix": "ftdResourceInfo.CrystalMax",
"body": [
"${1:ResourceInfo}.CrystalMax"
],
"description": "CrystalMax [float]: Max Crystal resources."
},
"ResourceInfo.MetalTotal": {
"prefix": "ftdResourceInfo.MetalTotal",
"body": [
"${1:ResourceInfo}.MetalTotal"
],
"description": "MetalTotal [float]: Total Metal resources."
},
"ResourceInfo.MetalMax": {
"prefix": "ftdResourceInfo.MetalMax",
"body": [
"${1:ResourceInfo}.MetalMax"
],
"description": "MetalMax [float]: Max Metal resources."
},
"ResourceInfo.NaturalTotal": {
"prefix": "ftdResourceInfo.NaturalTotal",
"body": [
"${1:ResourceInfo}.NaturalTotal"
],
"description": "NaturalTotal [float]: Total Natural resources."
},
"ResourceInfo.NaturalMax": {
"prefix": "ftdResourceInfo.NaturalMax",
"body": [
"${1:ResourceInfo}.NaturalMax"
],
"description": "NaturalMax [float]: Max Natural resources."
},
"ResourceInfo.OilTotal": {
"prefix": "ftdResourceInfo.OilTotal",
"body": [
"${1:ResourceInfo}.OilTotal"
],
"description": "OilTotal [float]: Total Oil resources."
},
"ResourceInfo.ScrapTotal": {
"prefix": "ftdResourceInfo.ScrapTotal",
"body": [
"${1:ResourceInfo}.ScrapTotal"
],
"description": "ScrapTotal [float]: Total Scrap resources."
},
"ResourceInfo.ScrapMax": {
"prefix": "ftdResourceInfo.ScrapMax",
"body": [
"${1:ResourceInfo}.ScrapMax"
],
"description": "ScrapMax [float]: Max Scrap resources."
},
// AI
"I.AIMode (read only)": {
"prefix": "ftd.AIMode",
"body": [
"I.AIMode"
],
"description": "\nOutputs: [string] Returns the mode of the AI. Possible modes: off, on\n\nReturns the mode of the AI mainframe."
},
"I:GetAIMovementMode(mainframeIndex)": {
"prefix": "ftd:GetAIMovementMode",
"body": [
"I:GetAIMovementMode(${1:mainframeIndex})"
],
"description": "現在の移動モードを返す。 Off/Manual/Fleet/Automatic"
},
"I:GetAIFiringMode(mainframeIndex)": {
"prefix": "ftd:GetAIFiringMode",
"body": [
"I:GetAIFiringMode(${1:mainframeIndex})"
],
"description": "現在の射撃モードを返す。 Off/Manual/Fleet/Automatic"
},
"I.ConstructType": {
"prefix": "ftd.ConstructType",
"body": [
"I.ConstructType"
],
"description": "\nOutputs: [string] The type of construct.\n\nAI's concept of what type at craft this ship is. Posible types: none"
},
"I.BlueprintSpawners": {
"prefix": "ftd.BlueprintSpawners",
"body": [
"I.BlueprintSpawners"
],
"description": "\nOutputs: [BlueprintSpawnerInfo] VehicleBlueprintSpawnerのBlueprintSpawnerInfoで指定した値を返す。(例)I.BlueprintSpawners[1].IsSpawning"
},
// BlueprintSpawnerInfo
"BlueprintSpawnerInfo.IsSpawning": {
"prefix": "BlueprintSpawnerInfo.IsSpawning",
"body": [
"${1:BlueprintSpawnerInfo}.IsSpawning"
],
"description": "IsSpawning [bool]: VehicleBlueprintSpawnerが作動中にtrueを返す"
},
"BlueprintSpawnerInfo.SpawnName": {
"prefix": "BlueprintSpawnerInfo.SpawnName",
"body": [
"${1:BlueprintSpawnerInfo}.SpawnName"
],
"description": "SpawnName [string]: DefaultBlueprintNameに書かれている値が返ってくる"
},
"BlueprintSpawnerInfo.HoldTime": {
"prefix": "BlueprintSpawnerInfo.HoldTime",
"body": [
"${1:BlueprintSpawnerInfo}.HoldTime"
],
"description": "HoldTime [float]: Hold for this timeの値が返ってくる.NO limitは1"
},
"BlueprintSpawnerInfo.MaxAllowedActive": {
"prefix": "BlueprintSpawnerInfo.MaxAllowedActive",
"body": [
"${1:BlueprintSpawnerInfo}.MaxAllowedActive"
],
"description": "MaxAllowedActive [int]: Spawns to preserveの値が返ってくる"
},
"BlueprintSpawnerInfo.MaxAllowedLifetime": {
"prefix": "BlueprintSpawnerInfo.MaxAllowedLifetime",
"body": [
"${1:BlueprintSpawnerInfo}.MaxAllowedLifetime"
],
"description": "MaxAllowedLifetime [int]: Max lifetimes spawnsの値が返ってくる"
},
"BlueprintSpawnerInfo.Spawn()": {
"prefix": "BlueprintSpawnerInfo.Spawn()",
"body": [
"${1:BlueprintSpawnerInfo}.Spawn()"
],
"description": "Spawn() [int]: 実行するとVehicleBlueprintSpawnerが起動する.(例)I.BlueprintSpawners[1]:Spawn()"
},
// Propulsion
"I:TellAiThatWeAreTakingControl()": {
"prefix": "ftd:TellAiThatWeAreTakingControl",
"body": [
"I:TellAiThatWeAreTakingControl()"
],
"description": "Inputs:\n\nOutputs:\n\nWill stop the AI from issuing propulsion commands for the next second, after which it will assume control again. This is exactly what happens when the player presses a control key on an AI controlled vehicle."
},
"I:RequestControl(mode,type,drive)": {
"prefix": "ftd:RequestControl",
"body": [
"I:RequestControl(${1:mode},${2:type},${3:drive})"
],
"description": "Inputs: mode: Water = O =, Land = 1, Air = 2.\ntype: YawLeft = 0,YawRight = 1,RollLeft = 2,RollRight = 3,NoseUp = 4,NoseDown = 5,Increase = 6,Decrease = 7,MainPropulsion = 8\ndrive: -1 to 1 for main propulsion, 0 to 1 for everything else.\n\nOutputs: N/A\n\nA generic propulsion / turning request. RequestContro(0,8,1) does the same as RequestWaterForwards(1)."
},
"I:RequestThrustControl(type)": {
"prefix": "ftd:RequestThrustControl",
"body": [
"I:RequestThrustControl(${1:type})"
],
"description": "Inputs: type: [int] forwards = 0, backwards = 1, right = 2, left = 3, up = 4, down = 5, rollright = 6, rollleft = 7, yawright = 8, yawleft = 9, noseup = 10, nosedown = 11\n\nOutputs: N/A\n\nRequests the vehicle's built in thrust controller to perform certain actions. Exactly the same as the player using the ThrustController block. WARNING: this will override the drive fractions of your propulsion systems as it uses these to provide balanced torque less thrust."
},
"I:RequestThrustControl(type, scale)": {
"prefix": "ftd:RequestThrustControl",
"body": [
"I:RequestThrustControl(${1:type}, ${2:scale})"
],
"description": "Inputs: type: [int] forwards = O, backwards = 1, right = 2, left = 3, up = A, down = 5, rollright = 6, rollleft = 7, yawright = 8, yawleft = 9, naseup = 10 nosedown = 11 .scale:[float] scale the force between 0 and 1.\n\nOutputs: N/A\n\nAs per the above function but this version otters a scaling factor."
},
"I:RequestWaterForwards(drive)": {
"prefix": "ftd:RequestWaterForwards",
"body": [
"I:RequestWaterForwards(${1:drive})"
],
"description": "Inputs: drive: a number between -5 and 5. Values outside of this range will be clamped.\n\nOutputs: N/A\n\nRequests forward propulsion tor propellers and huge propellers for one time-step. Does not actually change 'Water drive'. This is the function Naval AI uses."
},
"I:RequestComplexControllerStimulus(stim)": {
"prefix": "ftd:RequestComplexControllerStimulus",
"body": [
"I:RequestComplexControllerStimulus(${1:stim})"
],
"description": "Inputs: stim: none = 0,T = 1,G =2,Y = 3,H = 4,U = 5,J = 6,I = 7,K = 8,O = 9,L = 10,up = 11,down = 12,left = 13,right = 14\n\nOutputs: N/A\n\nRequests a stimuli as per the complex controller block."
},
"I:GetDrive(mode)": {
"prefix": "ftd:GetDrive",
"body": [
"I:GetDrive({${1:mode})"
],
"description": "Water DriveやAir Driveなどの値を返す\nmode : Water=0, Air=1, Primary=2, Secondary=3, Tertiary=4"
},
"I:GetInput(mode, type)": {
"prefix": "ftd:GetInput",
"body": [
"I:GetInput({${1:mode}, ${1:type})"
],
"description": "指定したDrive fractionの値を返す\nmode : Water=0, Land=1, Air=2\ntype : YawLeft=0, YawRight=1, RollLeft=2, RollRight=3, NoseUp=4, NoseDown=5, Increase=6, Decrease=7, MainPropulsion=8"
},
"I:MoveFortress": {
"prefix": "ftd:MoveFortress",
"body": [
"I:MoveFortress({${1:direction})"
],
"description": "Inputs: direction [Vector3]: Direction to move the fortress in. Limited to 1 meter.\n\nOutputs: N/A\n\nMove fortress in any direction, Limited to 1 meter."
},
// TargetInfo
"I:GetNumberOfMainframes()": {
"prefix": "ftd:GetNumberOfMainframes",
"body": [
"I:GetNumberOfMainframes()"
],
"description": "Inputs: N/A\n\nOutputs: The number of mainframes on your vehicle.\n\nThe mainframe count of your vehicle is useful for requesting targets"
},
"I:GetNumberOfTargets(mainframeIndex)": {
"prefix": "ftd:GetNumberOfTargets",
"body": [
"I:GetNumberOfTargets(${1:mainframeIndex})"
],
"description": "Inputs: mainframeIndex: 0 being the first mainframe. Use GetNumberOfMainframes() to find out how many there are.\n\nOutputs: The number of targets in this particular mainframe. Returns 0 if such a mainframe does not exist.\n\nThe target count is important when calling GetTaget(mainframeIndex, targetIndex)."
},
"I:GetTargetInfo(mainframeIndex, targetIndex)": {
"prefix": "ftd:GetTargetInfo",
"body": [
"I:GetTargetInfo(${1:mainframeIndex}, ${2:targetIndex})"
],
"description": "Inputs: mainframeIndex: 0 being the first mainframe. Use GetNumberOfMainframes() to find out how many there are.\ntargetIndex. 0 being the first target. If target prioritisation card is in use 0 is the highest priority target.\n\nOutputs: A TargetInfo object\n\nThe TargetInfo object contains many interesting variables relating to the target. Valid will be false if the target has died but the AI has not yet cleared it."
},
"I:GetTargetPositionInfo(mainframeIndex, targetIndex)": {
"prefix": "ftd:GetTargetPositionInfo",
"body": [
"I:GetTargetPositionInfo(${1:mainframeIndex}, ${2:targetIndex})"
],
"description": "Inputs: mainframeIndex 0 being the first mainframe. Use GetNumberOfMainframes() to find out how many there are.\ntargetIndex: 0 being the first target. If target prioritisation card is in use 0 is the highest priority target.\n\nOutputs: A TargetPositionInfo object\n\nThe TargetPositionInfo object contains many interesting variables relating to the target. Valid will be false if the target has died but the Al has not yet cleared it."
},
"I:GetTargetPositionInfoForPosition(mainframeIndex, x,y,z)": {
"prefix": "ftd:GetTargetPositionInfoForPosition",
"body": [
"I:GetTargetPositionInfoForPosition(${1:mainframeIndex}, ${2:x}, ${3:y}, ${4:z})"
],
"description": "Inputs: mainframeIndex: [int] 0 being the first mainframe. Use GetNumberOfMainframes() to find out how many there are.\nx: [float] east west in meters.\ny: [float] up down in meters (0 is sea level).\nz: north south in meters.\n\nOutputs: A TargetPositionInfo object for this point in space. Velocity will be 0.\n\nThe TargetPositionInfo obiect contains many interesting variables relating to the target."
},
// TargetInfo
"TargetInfo.Valid": {
"prefix": "ftdTargetInfo.Valid",
"body": [
"${1:TargetInfo}.Valid"
],
"description": "Valid: [bool] true if a target was correctly returned"
},
"TargetInfo.Priority": {
"prefix": "ftdTargetInfo.Priority",
"body": [
"${1:TargetInfo}.Priority"
],
"description": "Priority: [int] 0 is highest priority"
},
"TargetInfo.Score": {
"prefix": "ftdTargetInfo.Score",
"body": [
"${1:TargetInfo}.Score"
],
"description": "Score: [float] high is a good score- taken from target prioritisation card"
},
"TargetInfo.AimPointPosition": {
"prefix": "ftdTargetInfo.AimPointPosition",
"body": [
"${1:TargetInfo}.AimPointPosition"
],
"description": "AimPointPosition: [Vector3] position in game world of aim point (this is the current position of the block that's being aimed for)"
},
"TargetInfo.Team": {
"prefix": "ftdTargetInfo.Team",
"body": [
"${1:TargetInfo}.Team"
],
"description": "Team: [int] team of target"
},
"TargetInfo.Protected": {
"prefix": "ftdTargetInfo.Protected",
"body": [
"${1:TargetInfo}.Protected"
],
"description": "Protected: [bool] is it salvage? Will be false forr salvage."
},
"TargetInfo.Position": {
"prefix": "ftdTargetInfo.Position",
"body": [
"${1:TargetInfo}.Position"
],
"description": "Position: [Vector3] position in game world of target object."
},
"TargetInfo.Velocity": {
"prefix": "ftdTargetInfo.Velocity",
"body": [
"${1:TargetInfo}.Velocity"
],
"description": "Velocity: [Vector3] velocity in game world in meters per second"
},
"TargetInfo.PlayerTargetChoice": {
"prefix": "ftdTargetInfo.PlayerTargetChoice",
"body": [
"${1:TargetInfo}.PlayerTargetChoice"
],
"description": "PlayerTargetChoice: [bool] has the player set this as the target?"
},
"TargetInfo.Id": {
"prefix": "ftdTargetInfo.Id",
"body": [
"${1:TargetInfo}.Id"
],
"description": "Id: [int] the unique integer Id of the target."
},
// TargetPositionInfo
"TargetPositionInfo.Valid": {
"prefix": "ftdTargetPositionInfo.Valid",
"body": [
"${1:TargetPositionInfo}.Valid"
],
"description": "Valid: [bool] true if target position info correctly returned."
},
"TargetPositionInfo.Azimuth": {
"prefix": "ftdTargetPositionInfo.Azimuth",
"body": [
"${1:TargetPositionInfo}.Azimuth"
],
"description": "Azimuth: [float] degrees off nose of our vehicle where positive is clockwise"
},
"TargetPositionInfo.Elevation": {
"prefix": "ftdTargetPositionInfo.Elevation",
"body": [
"${1:TargetPositionInfo}.Elevation"
],
"description": "Elevation: [float] degrees off nose of our vehicle where positive is downwards. This often has dodgy values"
},
"TargetPositionInfo.ElevationForAltitudeComponentOnly": {
"prefix": "ftdTargetPositionInfo.ElevationForAltitudeComponentOnly",
"body": [
"${1:TargetPositionInfo}.ElevationForAltitudeComponentOnly"
],
"description": "ElevationForAltitudeComponentOnly: [float] the elevation off nose of the target's altitude. Robustly calculated"
},
"TargetPositionInfo.Range": {
"prefix": "ftdTargetPositionInfo.Range",
"body": [
"${1:TargetPositionInfo}.Range"
],
"description": "Range: [float] the range to the target"
},
"TargetPositionInfo.Direction": {
"prefix": "ftdTargetPositionInfo.Direction",
"body": [
"${1:TargetPositionInfo}.Direction"
],
"description": "Direction: [Vector3] the direction to the target (absolute, not normalised)"
},
"TargetPositionInfo.GroundDistance": {
"prefix": "ftdTargetPositionInfo.GroundDistance",
"body": [
"${1:TargetPositionInfo}.GroundDistance"
],
"description": "GroundDistance: [float] the distance along the ground (ignoring vertical component) to the target"
},
"TargetPositionInfo.AltitudeAboveSeaLevel": {
"prefix": "ftdTargetPositionInfo.AltitudeAboveSeaLevel",
"body": [
"${1:TargetPositionInfo}.AltitudeAboveSeaLevel"
],
"description": "AltitudeAboveSeaLevel: [float] in meters."
},
"TargetPositionInfo.Position": {
"prefix": "ftdTargetPositionInfo.Position",
"body": [
"${1:TargetPositionInfo}.Position"
],
"description": "Position: [Vector3] position of target"
},
"TargetPositionInfo.Velocity": {
"prefix": "ftdTargetPositionInfo.Velocity",
"body": [
"${1:TargetPositionInfo}.Velocity"
],
"description": "Velocity: [Vector3] meters per second"
},
// Misc
"I:GetTerrainAltitudeForPosition(x,y,z)": {
"prefix": "ftd:GetTerrainAltitudeForPosition",
"body": [
"I:GetTerrainAltitudeForPosition(${1:x}, ${2:y}, ${3:z})"
],
"description": "Inputs: x: [float] game world east west position in meters.\n
y: [float] game world vertical (not important)\n
z: game world north south position in meters.\n\nOutputs: [float] the terrain altitude in meters where 0 is sea level.\n\nReturns altitude of the terrain at a position in the world. Can be overloaded with a single Vector3 rather than x,y,z components."
},
"I:GetTerrainAltitudeForPosition(Vector3)": {
"prefix": "ftd:GetTerrainAltitudeForPosition",
"body": [
"I:GetTerrainAltitudeForPosition(${1:Vector3})"
],
"description": "Inputs: Vector3: [Vector3] game world position in meters.\n\nOutputs: [float] the terrain altitude in meters where 0 is sea level.\n\nReturns altitude of the terrain at a position in the world. Can be overloaded with a single Vector3 rather than x,y,z components."
},
"I:GetTerrainAltitudeForLocalPosition(x,y,z)": {
"prefix": "ftd:GetTerrainAltitudeForLocalPosition",
"body": [
"I:GetTerrainAltitudeForLocalPosition(${1:x}, ${2:y}, ${3:z})"
],
"description": "Inputs; x: [float] right offset from construct position in meters.\n
y: [float] up offset from construct position in meters\n
z: forwards offset from construct position in meters.\n\nOutputs: [float] the terrain altitude in meters where 0 is sea level.\n\nReturns altitude of the terrain at a position relative to the construct. Can be overloaded with a single Vector3 rather than x,y,z components."
},
"I:GetTerrainAltitudeForLocalPosition(Vector3)": {
"prefix": "ftd:GetTerrainAltitudeForLocalPosition",
"body": [
"I:GetTerrainAltitudeForLocalPosition(${1:Vector3})"
],
"description": "Inputs; Vector3: [Vector3] offset from construct position in meters.\n\nOutputs: [float] the terrain altitude in meters where 0 is sea level.\n\nReturns altitude of the terrain at a position relative to the construct. Can be overloaded with a single Vector3 rather than x,y,z components."
},
"I:GetGravityForAltitude(alt)": {
"prefix": "ftd:GetGravityForAltitude",
"body": [
"I:GetGravityForAltitude(${1:alt})"
],
"description": "Inputs: alt: [float] altitude (0 is sea level)\n\nOutputs: [Vector3] gravity vector\n\nReturns gravity vector for an altitude. gravity is the component of interest."
},
"I:GetTime()": {
"prefix": "ftd:GetTime",
"body": [
"I:GetTime()"
],
"description": "Inputs: N/A\n\nOutputs: [float] the time in seconds.\n\nReturns time with an arbitrary offset (i.e. the time will seldom be 0)."
},
"I:GetTimeSinceSpawn()": {
"prefix": "ftd:GetTimeSinceSpawn",
"body": [
"I:GetTimeSinceSpawn()"
],
"description": "Inputs: N/A\n\nOutputs: [float] the time in seconds since the construct spawned.\n\nReturns time since construct spawned in seconds."
},
"I:GetGameTime()": {
"prefix": "ftd:GetGameTime",
"body": [
"I:GetGameTime()"
],
"description": "Inputs: N/A\n\nOutputs: [float] The time since the Instance started in seconds.\n\nReturns time since the instance started in seconds."
},
"I:GetWindDirectionAndMagnitude()": {
"prefix": "ftd:GetWindDirectionAndMagnitude",
"body": [
"I:GetWindDirectionAndMagnitude()"
],
"description": "風向きと風速を返す"
},
// Self awareness
"I:GetConstructPosition()": {
"prefix": "ftd:GetConstructPosition",
"body": [
"I:GetConstructPosition()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] The position (Vector3 has members x, y, and z).\n\nReturns the position of the construct. The construct's position is essentially the position of the first ever block placed, or the center of the starting raft that it was built from."
},
"I:GetConstructForwardVector()": {
"prefix": "ftd:GetConstructForwardVector",
"body": [
"I:GetConstructForwardVector()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] The forward pointing vector of the construct (it has length 1)\n\nReturn the forward pointing vector of the construct"
},
"I:GetConstructRightVector()": {
"prefix": "ftd:GetConstructRightVector",
"body": [
"I:GetConstructRightVector()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] The right pointing vector of the construct (it has length 1)\n\nReturn the right pointing vector of the construct"
},
"I:GetConstructUpVector()": {
"prefix": "ftd:GetConstructUpVector",
"body": [
"I:GetConstructUpVector()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] The up pointing vector of the construct (it has length 1)\n\nReturn the up pointing vector of the construct"
},
"I:GetConstructMaxDimensions()": {
"prefix": "ftd:GetConstructMaxDimensions",
"body": [
"I:GetConstructMaxDimensions()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] The size of the vehicle right, up and forwards of its origin\n\nReturns the 'positive' size of the vehicle (right,up,forwards) relative to its origin (GetConstructPosition()). The coordinates are in local space. This minus GetConstructMinDimensions() provides the full size of the vehicle."
},
"I:GetConstructMinDimensions()": {
"prefix": "ftd:GetConstructMinDimensions",
"body": [
"I:GetConstructMinDimensions()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] The size of the vehicle left, down and back of its origin\n\nReturns the 'neqative’ size of the vehicle (left,down,back) relative to its origin (GetConstructPosition()). The coordinates are in local space"
},
"I:GetConstructRoll()": {
"prefix": "ftd:GetConstructRoll",
"body": [
"I:GetConstructRoll()"
],
"description": "Inputs: N/A\n\nOutputs: [float] The roll angle in degrees\n\nReturn the roll angle in degrees"
},
"I:GetConstructPitch()": {
"prefix": "ftd:GetConstructPitch",
"body": [
"I:GetConstructPitch()"
],
"description": "Inputs: N/A\n\nOutputs: [float] The pitch angle in degrees\n\nReturn the Pitch angle in degrees"
},
"I:GetConstructYaw()": {
"prefix": "ftd:GetConstructYaw",
"body": [
"I:GetConstructYaw()"
],
"description": "Inputs: N/A\n\nOutputs: [float] The yaw angle in degrees\n\nReturn the yaw angle in degrees"
},
"I:GetConstructCenterOfMass()": {
"prefix": "ftd:GetConstructCenterOfMass",
"body": [
"I:GetConstructCenterOfMass()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] The position (Vector3 has members x, y, and z).\n\nReturns the position of the construct's center of mass in the world"
},
"I:GetAiPosition(mainframeIndex)": {
"prefix": "ftd:GetAiPosition",
"body": [
"I:GetAiPosition(${1:mainframeIndex})"
],
"description": "Inputs: mainframeindex: [int] 0 is the first mainflame.\n\nOutputs: [Vector3] The position (Vector3 has members x, y, and z).\n\nReturns the position of the mainframe in the world. Returns Vector3(0,0,0) it no such mainframe exists."
},
"I:GetVelocityMagnitude()": {
"prefix": "ftd:GetVelocityMagnitude",
"body": [
"I:GetVelocityMagnitude()"
],
"description": "Inputs: N/A\n\nOutputs: [float] magnitude of your velocity in meters per second.\n\nReturns the magnitude of your velocity in meters per second."
},
"I:GetForwardsVelocityMagnitude()": {
"prefix": "ftd:GetForwardsVelocityMagnitude",
"body": [
"I:GetForwardsVelocityMagnitude()"
],
"description": "Inputs: N/A\n\nOutputs: [float] magnitude of your forwards velocity in meters per second.\n\nReturns the magnitude of your velocity in the forwards direction in meters per second. A negative value means you're going predominantly backwards."
},
"I:GetVelocityVector()": {
"prefix": "ftd:GetVelocityVector",
"body": [
"I:GetVelocityVector()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] Your construct's velocity vector in meters per second\n\nReturns your construct's velocity vector in world space in meters per second. x is east west, y is up down and z is north south."
},
"I:GetVelocityVectorNormalized()": {
"prefix": "ftd:GetVelocityVectorNormalized",
"body": [
"I:GetVelocityVectorNormalized()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] Your construct's velocity vector in meters per second- normalized to have a length of 1.\n\nReturns your construct's velocity vector in world space in meters per second, x is east west, y is up clown and z is north south. It's normalized to have a length of 1."
},
"I:GetAngularVelocity()": {
"prefix": "ftd:GetAngularVelocity",
"body": [
"I:GetAngularVelocity()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] Your construct's angular velocity in world space\n\nReturns your angular velocity. x is speed of turn around the east ->'' west axis. y is around the vertical axis and z is around the north south axis. You're probably going to want the next function instead of this one..."
},
"I:GetLocalAngularVelocity()": {
"prefix": "ftd:GetLocalAngularVelocity",
"body": [
"I:GetLocalAngularVelocity()"
],
"description": "Inputs: N/A\n\nOutputs: [Vector3] Your construct's angular velocity in local space\n\nReturns your angular velocity. x is pitch, y yaw and z roll."
},
"I:GetAmmoFraction()": {
"prefix": "ftd:GetAmmoFraction",
"body": [
"I:GetAmmoFraction()"
],
"description": "Inputs: N/A\n\nOutputs: [float] fraction. 0 to 1. 1 if no ammo storage is available\n\nReturns the fraction of ammo your construct has left"
},
"I:GetFuelFraction()": {
"prefix": "ftd:GetFuelFraction",
"body": [
"I:GetFuelFraction()"
],
"description": "Inputs: N/A\n\nOutputs: [float] fraction. 0 to 1. 1 if no fuel storage is available\n\nReturns the fraction of fuel your construct has left"
},
"I:GetSparesFraction()": {
"prefix": "ftd:GetSparesFraction",
"body": [
"I:GetSparesFraction()"
],
"description": "Inputs: N/A\n\nOutputs: [float] fraction. 0 to 1. 1 if no spares storage is available\n\nReturns the fraction of spares your construct has left"
},
"I:GetEnergyFraction()": {
"prefix": "ftd:GetEnergyFraction",
"body": [
"I:GetEnergyFraction()"
],
"description": "Inputs: N/A\n\nOutputs: [float] fraction. 0 to 1. 1 if no batteries are abailable\n\nReturns the fraction of energy your construct has left"
},
"I:GetPowerFraction()": {
"prefix": "ftd:GetPowerFraction",
"body": [
"I:GetPowerFraction()"
],
"description": "Inputs: N/A\n\nOutputs: [float] fraction. 0 to 1. \n\nReturns the fraction of power your construct has left"
},
"I:GetElectricPowerFraction()": {
"prefix": "ftd:GetElectricPowerFraction",
"body": [
"I:GetElectricPowerFraction()"
],
"description": "Inputs: N/A\n\nOutputs: [float] fraction. 0 to 1. \n\nReturns the fraction of electric power your construct has left"
},
"I:GetHealthFraction()": {
"prefix": "ftd:GetHealthFraction",
"body": [
"I:GetHealthFraction()"
],
"description": "Inputs: N/A\n\nOutputs: [float] fraction. 0 to 1. 1 if full health\n\nReturns the fraction of health your construct has (including turrets etc)"
},
"I:IsDocked()": {
"prefix": "ftd:IsDocked",
"body": [
"I:IsDocked()"
],
"description": "Inputs: N/A\n\nOutputs: [bool] Docked? true for yes.\n\nReturns true it the vehicle is docked"
},
"I:GetHealthFractionDifference(time)": {
"prefix": "ftd:GetHealthFractionDifference",
"body": [
"I:GetHealthFractionDifference(${1:time})"
],
"description": "Inputs: time[float]: the time you want the difference measured over. Time will be limited to be between 1 and 30.\n\nOutputs: [float] health difference as a fraction (0 to 1)\n\nReturns health difference over a specified measurement time"
},
"I:GetBlueprintName()": {
"prefix": "ftd:GetBlueprintName",
"body": [
"I:GetBlueprintName()"
],
"description": "Inputs: N/A\n\nOutputs: [string] name of the blurprint.\n\nReturns the name of this blurprint."
},
"I:GetUniqueId()": {
"prefix": "ftd:GetUniqueId",
"body": [
"I:GetUniqueId()"
],
"description": "Inputs: N/A\n\nOutputs: [int] the unique id\n\nReturns the the unique id of this construct. No other construct has the same id."
},
// components type and their logic
"Component types and their logic.": {
"prefix": "ftdComponentComment",
"body": [
"--[[0 = balloon deployed. boolean true for deployed and false for not deployed\n
1 = drive maintainer. floating point -5 to 5. Sets the power for the drive the maintainer is controlling (Primary,Secondary,Tertiary).\n
2 = air pump. floating point 0 to 1 for buoyancy fraction. bool true means 'on (>'' 0)‘ and false means 'off (0)'. Setting bool true sets to 1.\n
3 = resource gatherer. bool logic false to turn off and true to turn on.\n
4 = oil drill. bool logic false to turn off and true to turn on\n
5 = ammo processor. bool logic false to turn off and true to turn on\n
6 = oil processor. bool logic false to turn off and true to turn on\n
7 = tractor beams. bool logic true turns it on and bool logic false turns it off\n
8 = hydrofoils. float logic gets/sets the angle (45 is max up and -45 is max down).\n
9 = propulsion. float logic gets/sets drive fraction between 0 and 1\n
10 = shield projector. float logic for power drive, int logic for shield type (off: 0, disrupt = 7, reflect = 2)]]"
],
"description": "0 = balloon deployed. boolean true for deployed and false for not deployed\n
1 = drive maintainer. floating point -5 to 5. Sets the power for the drive the maintainer is controlling (Primary,Secondary,Tertiary).\n
2 = air pump. floating point 0 to 1 for buoyancy fraction. bool true means 'on (>'' 0)‘ and false means 'off (0)'. Setting bool true sets to 1.\n
3 = resource gatherer. bool logic false to turn off and true to turn on.\n
4 = oil drill. bool logic false to turn off and true to turn on\n
5 = ammo processor. bool logic false to turn off and true to turn on\n
6 = oil processor. bool logic false to turn off and true to turn on\n
7 = tractor beams. bool logic true turns it on and bool logic false turns it off\n
8 = hydrofoils. float logic gets/sets the angle (45 is max up and -45 is max down).\n
9 = propulsion. float logic gets/sets drive fraction between 0 and 1\n
10 = shield projector. float logic for power drive, int logic for shield type (off: 0, disrupt = 7, reflect = 2)"
},
// BlockInfo
"BlockInfo.Position": {
"prefix": "ftdBlockInfo.Position",
"body": [
"${1:BlockInfo}.Position"
],
"description": "Position:[Vector3] position in world (east,up,north)"
},
"BlockInfo.LocalPosition": {
"prefix": "ftdBlockInfo.LocalPosition",
"body": [
"${1:BlockInfo}.LocalPosition"
],
"description": "LocalPosition:[Vector3] position in construct (right,up,forwards)"
},
"BlockInfo.LocalPositionRelativeToCom": {
"prefix": "ftdBlockInfo.LocalPositionRelativeToCom",
"body": [
"${1:BlockInfo}.LocalPositionRelativeToCom"
],
"description": "LocalPositionRelativeToCom:[Vector3] local position relative to the center of mass"
},
"BlockInfo.Forwards": {
"prefix": "ftdBlockInfo.Forwards",
"body": [
"${1:BlockInfo}.Forwards"
],
"description": "Forwards:[Vector3] forwards direction in world(east,up,north)"
},
"BlockInfo.LocalForwards": {
"prefix": "ftdBlockInfo.LocalForwards",
"body": [
"${1:BlockInfo}.LocalForwards"
],
"description": "LocalForwards:[Vector3] forward direction in construct (right,up,forwards)"
},
"BlockInfo.Rotation": {
"prefix": "ftdBlockInfo.Rotation",
"body": [
"${1:BlockInfo}.Rotation"
],
"description": "Rotation:[Quaternion] the rotation of the block in world coordinates"
},
"BlockInfo.LocalRotation": {
"prefix": "ftdBlockInfo.LocalRotation",
"body": [
"${1:BlockInfo}.LocalRotation"
],
"description": "LocalRotation:[Quaternion] the rotation of the block in the vehicle's (or turret's) coordinate system."
},
// Components
"I:Component_GetCount(type)": {
"prefix": "ftd:Component_GetCount",
"body": [
"I:Component_GetCount(${1:type})"
],
"description": "Inputs: type: [int] the type of component you want the count of\n\nOutputs: [int] the number of components of this type.\n\nReturns the number of components of this type"
},
"I:Component_GetLocalPosition(type,index)": {
"prefix": "ftd:Component_GetLocalPosition",
"body": [
"I:Component_GetLocalPosition(${1:type}, ${2:index})"
],
"description": "Inputs: type: [int] the type of component you want the local position of\n
index [int] the index of the component you want the position of\n\nOutputs: [Vector3i] a Vector3i is a Vector3 where .x.y and .z are integers.\n\nRetums the local position in the vehicle of this component."
},
"I:Component_GetBlockInfo(type,index)": {
"prefix": "ftd:Component_GetBlockInfo",
"body": [
"I:Component_GetBlockInfo(${1:type}, ${2:index})"
],
"description": "Inputs: type: [int] the type of component you want information on.\n
index: [int] the index of the component you want block info for..\n\n\nOutputs: [BlockInfo] a Blockinfo structure relating to the component.\n\nReturns an extensive Blockinfo object tor the component."
},
"I:Component_GetBoolLogic(type,index)": {
"prefix": "ftd:Component_GetBoolLogic",
"body": [
"I:Component_GetBoolLogic(${1:type}, ${2:index})"
],
"description": "Inputs: type: [int] the type ofcomponent you want boolean logic for.\n
index: [int] the index of the component you want boolean logic for.\n\n\nOutputs: [bool] the boolean logic for this component. For a component without boolean logic, or an index that doesn't exist, false is returned.\n\nReturns a boolean (true/false) for a component. Depending on the type of this component this means different things (or nothing at all). Default return is false."
},
"I:Component_GetBoolLogic_1(type, blockIndex, propertyIndex)": {
"prefix": "ftd:Component_GetBoolLogic_1",
"body": [
"I:Component_GetBoolLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex})"
],
"description": ""
},
"I:Component_SetBoolLogic(type,index,bool)": {
"prefix": "ftd:Component_SetBoolLogic",
"body": [
"I:Component_SetBoolLogic(${1:type}, ${2:index}, ${3:bool})"
],
"description": "Inputs: type: [int] the type of component you want to set boolean logic for.\n
index: [int] the index of the component you want to set boolean logic for.\n
bool: [bool] the true/false you want to set.\n\nOutputs: N/A\n\nSets the boolean logic for a component. Depending on the type of this component this means different things (or nothing at all)."
},
"I:Component_SetBoolLogic_1(type, blockIndex, propertyIndex1, bool1)": {
"prefix": "ftd:Component_SetBoolLogic_1",
"body": [
"I:Component_SetBoolLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:bool1})"
],
"description": ""
},
"I:Component_SetBoolLogic_2(type, blockIndex, propertyIndex1, bool1, propertyIndex2, bool2)": {
"prefix": "ftd:Component_SetBoolLogic_2",
"body": [
"I:Component_SetBoolLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:bool1}, ${5:propertyIndex2}, ${6:bool2})"
],
"description": ""
},
"I:Component_SetBoolLogic_3(type, blockIndex, propertyIndex1, bool1, propertyIndex2, bool2, propertyIndex3, bool3)": {
"prefix": "ftd:Component_SetBoolLogic_3",
"body": [
"I:Component_SetBoolLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:bool1}, ${5:propertyIndex2}, ${6:bool2}, ${7:propertyIndex3}, ${8:bool3})"
],
"description": ""
},
"I:Component_GetFloatLogic(type,index)": {
"prefix": "ftd:Component_GetFloatLogic",
"body": [
"I:Component_GetFloatLogic(${1:type}, ${2:index})"
],
"description": "Inputs: type: [int] the type of component you want boolean logic for.\n
index: [int] the index of the component you want integer logic for.\n\n\nOutputs: [float] the floating point logic for this component. For a component without floating point logic, or an index that doesn't exist, 0 is returned.\n\nReturns a floating point value for a component. Depending on the type of this component this means different things (or nothing at all). Default return is 0."
},
"I:Component_GetFloatLogic_1(type, blockIndex, propertyIndex)": {
"prefix": "ftd:Component_GetFloatLogic_1",
"body": [
"I:Component_GetFloatLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex})"
],
"description": ""
},
"I:Component_SetFloatLogic(type,index,float)": {
"prefix": "ftd:Component_SetFloatLogic",
"body": [
"I:Component_SetFloatLogic(${1:type}, ${2:index}, ${3:float})"
],
"description": "Inputs: type: [int] the type of component you want to set floating point logic for.\n
index: [int] the index of the component you want to set floating point logic for.\n
float: [float] the floating point number you want to set.\n\nOutputs: N/A\n\nSets the floating point logic for a component. Depending on the type of this component this means different things (or nothing at all)."
},
"I:Component_SetFloatLogic_1(type, blockIndex, propertyIndex1, float1)": {
"prefix": "ftd:Component_SetFloatLogic_1",
"body": [
"I:Component_SetFloatLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:float1})"
],
"description": ""
},
"I:Component_SetFloatLogic_2(type, blockIndex, propertyIndex1, float1, propertyIndex2, float2)": {
"prefix": "ftd:Component_SetFloatLogic_2",
"body": [
"I:Component_SetFloatLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:float1}, ${5:propertyIndex2}, ${6:float2})"
],
"description": ""
},
"I:Component_SetFloatLogic_3(type, blockIndex, propertyIndex1, float1, propertyIndex2, float2, propertyIndex3, float3)": {
"prefix": "ftd:Component_SetFloatLogic_3",
"body": [
"I:Component_SetFloatLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:float1}, ${5:propertyIndex2}, ${6:float2}, ${7:propertyIndex3}, ${8:float3})"
],
"description": ""
},
"I:Component_GetIntLogic(type,index)": {
"prefix": "ftd:Component_GetIntLogic",
"body": [
"I:Component_GetIntLogic(${1:type}, ${2:index})"
],
"description": "Inputs: type: [int] the type of component you want boolean logic for.\n
index: [int] the index of the component you want integer logic for.\n\n\nOutputs: [int] the integer logic for this component. For a component without integer logic, or an index that doesn't exist, 0 is returned.\n\nReturns an integer value for a component. Depending on the type of this component this means different things (or nothing at all). Default return is 0."
},
"I:Component_GetIntLogic_1(type, blockIndex, propertyIndex)": {
"prefix": "ftd:Component_GetIntLogic_1",
"body": [
"I:Component_GetIntLogic_1(${1:type}, ${2:blockIndex}, ${2:propertyIndex})"
],
"description": ""
},
"I:Component_SetIntLogic(type,index,integer)": {
"prefix": "ftd:Component_SetIntLogic",
"body": [
"I:Component_SetIntLogic(${1:type}, ${2:index}, ${3:integer})"
],
"description": "Inputs: type: [int] the type of component you want to set integer point logic for.\n
index: [int] the index of the component you want to set integer point logic for.\n
int: [int] the integer number you want to set.\n\nOutputs: N/A\n\nSets the integer logic for a component. Depending on the type of this component this means different things (or nothing at all)."
},
"I:Component_SetIntLogic_1(type, blockIndex, propertyIndex1, int1)": {
"prefix": "ftd:Component_SetIntLogic_1",
"body": [
"I:Component_SetIntLogic_1(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:int1})"
],
"description": ""
},
"I:Component_SetIntLogic_2(type, blockIndex, propertyIndex1, int1, propertyIndex2, int2)": {
"prefix": "ftd:Component_SetIntLogic_2",
"body": [
"I:Component_SetIntLogic_2(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:int1}, ${5:propertyIndex2}, ${6:int2})"
],
"description": ""
},
"I:Component_SetIntLogic_3(type, blockIndex, propertyIndex1, int1, propertyIndex2, int2, propertyIndex3, int3)": {
"prefix": "ftd:Component_SetIntLogic_3",
"body": [
"I:Component_SetIntLogic_3(${1:type}, ${2:blockIndex}, ${3:propertyIndex1}, ${4:int1}, ${5:propertyIndex2}, ${6:int2}, ${7:propertyIndex3}, ${8:int3})"
],
"description": ""
},
"I:Component_SetBoolLogicAll(type, bool)": {
"prefix": "ftd:Component_SetBoolLogicAll",
"body": [
"I:Component_SetBoolLogicAll(${1:type}, ${2:bool})"
],
"description": "Inputs: type: [int] the type of component you want to set boolean logic for.ool [bool] the bool (true/false) you want to set.\n\nOutputs: N/A\n\nSets the boolean logic for all components of a specific type. Depending on the type of this component this means different things (or nothing at all)."
},
"I:Component_SetBoolLogicAll_1(type, propertyIndex1, bool1)": {
"prefix": "ftd:Component_SetBoolLogicAll_1",
"body": [
"I:Component_SetBoolLogicAll_1(${1:type}, ${2:propertyIndex1}, ${3:bool1})"
],
"description": ""
},
"I:Component_SetBoolLogicAll_2(type, propertyIndex1, bool1, propertyIndex2, bool2)": {
"prefix": "ftd:Component_SetBoolLogicAll_2",
"body": [
"I:Component_SetBoolLogicAll_2(${1:type}, ${2:propertyIndex1}, ${3:bool1}, ${4:propertyIndex2}, ${5:bool2})"
],
"description": ""
},
"I:Component_SetBoolLogicAll_3(type, propertyIndex1, bool1, propertyIndex2, bool2, propertyIndex3, bool3)": {
"prefix": "ftd:Component_SetBoolLogicAll_3",
"body": [
"I:Component_SetBoolLogicAll_3(${1:type}, ${2:propertyIndex1}, ${3:bool1}, ${4:propertyIndex2}, ${5:bool2}, ${6:propertyIndex3}, ${7:bool3})"
],
"description": ""
},
"I:Component_SetFloatLogicAll(type, float)": {
"prefix": "ftd:Component_SetFloatLogicAll",
"body": [
"I:Component_SetFloatLogicAll(${1:type}, ${2:float})"
],
"description": "Inputs: type: [int] the type of component you want to set floating point logic for.\n
float [float] the floating point number you want to set.\n\nOutputs: N/A\n\nSets the floating point logic for all components of a specific type. Depending on the type of this component this means different things (or nothing at h all)."
},
"I:Component_SetFloatLogicAll_1(type, propertyIndex1, float1)": {
"prefix": "ftd:Component_SetFloatLogicAll_1",
"body": [
"I:Component_SetFloatLogicAll_1(${1:type}, ${2:propertyIndex1}, ${3:float1})"
],
"description": ""
},
"I:Component_SetFloatLogicAll_2(type, propertyIndex1, float1, propertyIndex2, float2)": {
"prefix": "ftd:Component_SetFloatLogicAll_2",
"body": [
"I:Component_SetFloatLogicAll_2(${1:type}, ${2:propertyIndex1}, ${3:float1}, ${4:propertyIndex2}, ${5:float2})"
],
"description": ""
},
"I:Component_SetFloatLogicAll_3(type, propertyIndex1, float1, propertyIndex2, float2, propertyIndex3, float3)": {
"prefix": "ftd:Component_SetFloatLogicAll_3",
"body": [
"I:Component_SetFloatLogicAll_2(${1:type}, ${2:propertyIndex1}, ${3:float1}, ${4:propertyIndex2}, ${5:float2}, ${6:propertyIndex3}, ${7:float3})"
],
"description": ""
},
"I:Component_SetIntLogicAll(type, int)": {
"prefix": "ftd:Component_SetIntLogicAll",
"body": [
"I:Component_SetIntLogicAll(${1:type}, ${2:int})"
],
"description": "Inputs: type: [int] the type of component you want to set integer logic for.\n
float [int] the integer you want to set.\n\nOutputs: N/A\n\nSets the intener ionic for all components of a specific type. Depending on the type of this component this means different things (or nothing at all)."
},
"I:Component_SetIntLogicAll_1(type, propertyIndex1, int1)": {
"prefix": "ftd:Component_SetIntLogicAll_1",
"body": [
"I:Component_SetIntLogicAll_1(${1:type}, ${2:propertyIndex1}, ${3:int1})"
],
"description": ""
},
"I:Component_SetIntLogicAll_2(type, propertyIndex1, int1, propertyIndex2, int2)": {
"prefix": "ftd:Component_SetIntLogicAll_2",
"body": [
"I:Component_SetIntLogicAll_1(${1:type}, ${2:propertyIndex1}, ${3:int1}, ${4:propertyIndex2}, ${5:int2})"
],
"description": ""
},
"I:Component_SetIntLogicAll_3(type, propertyIndex1, int1, propertyIndex2, int2, propertyIndex3, int3)": {
"prefix": "ftd:Component_SetIntLogicAll_3",
"body": [
"I:Component_SetIntLogicAll_1(${1:type}, ${2:propertyIndex1}, ${3:int1}, ${4:propertyIndex2}, ${5:int2}, ${6:propertyIndex3}, ${7:int3})"
],
"description": ""
},
"I:SetHologramProjectorURL(index, url)": {
"prefix": "ftd:SetHologramProjectorURL",
"body": [
"I:SetHologramProjectorURL(${1:index}, ${2:url})"
],
"description": ""
},
"I:SetPosterHolderURL(index, url)": {
"prefix": "ftd:SetPosterHolderURL",
"body": [
"I:SetPosterHolderURL(${1:index}, ${2:url})"
],
"description": ""
},
"I:DeployAllBalloons()": {
"prefix": "ftd:DeployAllBalloons",
"body": [
"I:DeployAllBalloons()"
],
"description": "全てのバルーン展開"
},
"I:SeverAllBalloons()": {
"prefix": "ftd:SeverAllBalloons",
"body": [
"I:SeverAllBalloons()"
],
"description": "全てのバルーンを開放"
},
// Weapons
"I:GetWeaponCount()": {
"prefix": "ftd:GetWeaponCount",
"body": [
"I:GetWeaponCount()"
],
"description": "Inputs: N/A\n\nOutputs: [int] the number of weapons on the hull- doesn't include weapons on the turrets but does include the turrets themselves.\n\nGet the number of weapons on the hull. Knowinq is number is useful for when you want to call GetWeaponInfo(i) to find out weapon information."
},
"I:GetWeaponInfo(weaponIndex)": {
"prefix": "ftd:GetWeaponInfo",
"body": [
"I:GetWeaponInfo(${1:weaponIndex})"
],
"description": "Inputs: weaponIndex: [int] the index of the weapon you want information on. 0 is the first weapon.\n\nOutputs: [WeaponInfo] information on the weapon. weaponInfo.Valid is false if you ask for an invalid weaponIndex.\n\nGets weapon information for a specific weapon. Useful to figure out what sort of weapon is present."
},
"I:GetWeaponConstraints(weaponIndex)": {
"prefix": "ftd:GetWeaponConstraints",
"body": [
"I:GetWeaponConstraints(${1:weaponIndex})"
],
"description": ""
},
"I:GetWeaponBlockInfo(weaponIndex)": {
"prefix": "ftd:GetWeaponBlockInfo",
"body": [
"I:GetWeaponBlockInfo(${1:weaponIndex})"
],
"description": ""
},
"I:AimWeaponInDirection(weaponIndex, x,y,z, weaponSlot)": {
"prefix": "ftd:AimWeaponInDirection",
"body": [
"I:AimWeaponInDirection(${1:weaponIndex}, ${2:x}, ${3:y}, ${4:z}, ${5:weaponSlot})"
],
"description": "Inputs: weaponIndex: [int] 0 is the first weapon.\n
x,y,z: [floats] the world coordinate scheme direction components to point in. They don't need to be normalised\n
weaponSlot: [int] 0 for all, otherwise 1 to 5.\n\nOutputs: [int] the number of weapons that can fire in this direction. 0 for none.\n\nAims a weapon in a specific direction. For a turret this will aim all weapons on the turret as well as the turret itself."
},
"I:FireWeapon(weaponIndex, weaponSlot)": {
"prefix": "ftd:FireWeapon",
"body": [
"I:FireWeapon(${1:weaponIndex}, ${2:weaponSlot})"
],
"description": "Inputs: weaponIndex: [int] 0 is the first weapon.\n
weaponSlot: [int] 0 will control all weapons\n\nOutputs: [bool] has any weapon fired? will be true if so.\n\nFires a specific weapon. lt's important for most weapons that you aim them first as they won't fire it they can't fire in the direction they are aimed."
},
"I:GetTurretSpinnerCount()": {
"prefix": "ftd:GetTurretSpinnerCount",
"body": [
"I:GetTurretSpinnerCount()"
],
"description": "Inputs: N/A\n\nOutputs: [int] the number of turrets and spinners on the construct\n\nReturns the number of turrets and spinners on the construct. You'll need this function it you want to control turreted or spin block mounted weapons individually"
},
"I:GetWeaponCountOnTurretOrSpinner(turretSpinnerIndex)": {
"prefix": "ftd:GetWeaponCountOnTurretOrSpinner",
"body": [
"I:GetWeaponCountOnTurretOrSpinner(${1:turretSpinnerIndex})"
],
"description": "Inputs: turretSpinnerIndex [int] 0 is the first turret or spinner\n\nOutputs: [int] the number of weapons on this turret or spinner, not including the turret itself\n\nReturn the number of weapons on the turret or spinner. If you wanted to control the turret itself then note that it is treated as a hull mounted weapon."
},
"I:GetWeaponInfoOnTurretOrSpinner(turretSpinnerIndex, weaponIndex)": {
"prefix": "ftd:GetWeaponInfoOnTurretOrSpinner",
"body": [
"I:GetWeaponInfoOnTurretOrSpinner(${1:turretSpinnerIndex}, ${2:weaponIndex})"
],
"description": "Inputs: turretSpinnerIndex: [int] the index of the turret or spinner. 0 is the first one.\n
weaponIndex: [int] the index of the weapon. 0 is the first one.\n\nOutputs: [WeaponInfo] a WeaponInfo object. See above for the definition of this structure. Note that changes to this structure in LUA do not affect the weapon itself.\n\nGet weapon into ot a weapon on a turret or spinner"
},
"I:AimWeaponInDirectionOnTurretOrSpinner(turretSpinnerIndex,weaponIndex,x,y,z,weaponSlot)": {
"prefix": "ftd:AimWeaponInDirectionOnTurretOrSpinner",
"body": [
"I:AimWeaponInDirectionOnTurretOrSpinner(${1:turretSpinnerIndex}, ${2:weaponIndex}, ${3:x}, ${4:y}, ${5:z}, ${6:weaponSlot})"
],
"description": "Inputs: First argument is now the turret spinner index, otherwise see 'AimWeaponInDirection'\n\nOutputs: as per AimWeaponInDirection\n\nAims a specific weapon on the turret without aiming the turret"
},
"I:GetWeaponCountOnSubConstruct(SubConstructIdentifier)": {
"prefix": "ftd:GetWeaponCountOnSubConstruct",
"body": [
"I:GetWeaponCountOnSubConstruct(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクト上の兵器の数が返ってくる"
},
"I:GetWeaponInfoOnSubConstruct(SubConstructIdentifier, weaponIndex)": {
"prefix": "ftd:GetWeaponInfoOnSubConstruct",
"body": [
"I:GetWeaponInfoOnSubConstruct(${1:subConstructIdentifier}, ${2:weaponIndex})"
],
"description": "指定サブオブジェクト上の指定した兵器についてWeaponInfoで指定した値が返ってくる"
},
"I:GetWeaponConstraintsOnSubConstruct(SubConstructIdentifier, weaponIndex)": {
"prefix": "ftd:GetWeaponConstraintsOnSubConstruct",
"body": [
"I:GetWeaponConstraintsOnSubConstruct(${1:subConstructIdentifier}, ${2:weaponIndex})"
],
"description": "指定サブオブジェクト上の指定した兵器についてWeaponConstraintsで指定した値が返ってくる"
},
"I:GetWeaponBlockInfoOnSubConstruct(SubConstructIdentifier, weaponIndex)": {
"prefix": "ftd:GetWeaponBlockInfoOnSubConstruct",
"body": [
"I:GetWeaponBlockInfoOnSubConstruct(${1:subConstructIdentifier}, ${2:weaponIndex})"
],
"description": "指定サブオブジェクト上の指定した兵器についてBlockInfoで指定した値が返ってくる"
},
"I:AimWeaponInDirectionOnSubConstruct(SubConstructIdentifier,weaponIndex,x,y,z,weaponSlot)": {
"prefix": "ftd:AimWeaponInDirectionOnSubConstruct",
"body": [
"I:AimWeaponInDirectionOnSubConstruct(${1:subConstructIdentifier}, ${2:weaponIndex}, ${3:x}, ${4:y}, ${5:z}, ${6:weaponSlot})"
],
"description": "指定サブオブジェクト上の指定した兵器について攻撃する座標を指定する。詳細はAimWeaponInDirection。ただし、ターレットは追従してくれない"
},
"I:FireWeaponOnSubConstruct(SubConstructIdentifier,weaponIndex,weaponSlot)": {
"prefix": "ftd:FireWeaponOnSubConstruct",
"body": [
"I:FireWeaponOnSubConstruct(${1:subConstructIdentifier}, ${2:weaponIndex}, ${3:weaponSlot})"
],
"description": "指定サブオブジェクト上の指定した兵器で攻撃する。発射できたかどうかが返ってくる"
},
// WeaponInfo
"WeaponInfo.Valid": {
"prefix": "ftdWeaponInfo.Valid",
"body": [
"${1:WeaponInfo}.Valid"
],
"description": "Valid [bool]: false means this WeaponInfo packet is useless. Move onto the next valid one."
},
"WeaponInfo.LocalPosition": {
"prefix": "ftdWeaponInfo.LocalPosition",
"body": [
"${1:WeaponInfo}.LocalPosition"
],
"description": "LocalPosition [Vector3]: the local position in the vehicle of the weapon. x is right, y is up and z is forwards."
},
"WeaponInfo.GlobalPosition": {
"prefix": "ftdWeaponInfo.GlobalPosition",
"body": [
"${1:WeaponInfo}.GlobalPosition"
],
"description": "GlobalPosition [Vector3]: the global position of the weapon. x is East, y is Up and Z is North"
},
"WeaponInfo.Speed": {
"prefix": "ftdWeaponInfo.Speed",
"body": [
"${1:WeaponInfo}.Speed"
],
"description": "Speed [float]: the speed in meters per second of the weapon- approximately correct for most weapon types."
},
"WeaponInfo.CurrentDirection": {
"prefix": "ftdWeaponInfo.CurrentDirection",
"body": [
"${1:WeaponInfo}.CurrentDirection"
],
"description": "CurrentDirection [Vector3]: the direction in global coordinate system that the weapon is facing"
},
"WeaponInfo.WeaponType": {
"prefix": "ftdWeaponInfo.WeaponType",
"body": [
"${1:WeaponInfo}.WeaponType"
],
"description": "WeaponType [int]: the type of the weapon. cannon = 0,missile = 1,laser = 2,harpoon = 3,turret = 4,missilecontrol = 5,fireControlComputer = 6"
},
"WeaponInfo.WeaponSlot": {
"prefix": "ftdWeaponInfo.WeaponSlot",
"body": [
"${1:WeaponInfo}.WeaponSlot"
],
"description": "WeaponSlot [int]: the weapon slot of the weapon itself 0 -> '' 5."
},
"WeaponInfo.PlayerCurrentlyControllingIt": {
"prefix": "ftdWeaponInfo.PlayerCurrentlyControllingIt",
"body": [
"${1:WeaponInfo}.PlayerCurrentlyControllingIt"
],
"description": "PlayerCurrentlyControllingIt [bool]: true if the player is controlling this weapon at the moment"
},
// WeaponConstraints
"WeaponConstraints.Valid": {
"prefix": "ftdWeaponConstraints.Valid",
"body": [
"${1:WeaponConstraints}.Valid"
],
"description": "Valid [bool]: false means this WeaponInfo packet is useless. Move onto the next valid one."
},
"WeaponConstraints.MinAzimuth": {
"prefix": "ftdWeaponConstraints.MinAzimuth",
"body": [
"${1:WeaponConstraints}.MinAzimuth"
],
"description": ""
},
"WeaponConstraints.MaxAzimuth": {
"prefix": "ftdWeaponConstraints.MaxAzimuth",
"body": [
"${1:WeaponConstraints}.MaxAzimuth"
],
"description": ""
},
"WeaponConstraints.MinElevation": {
"prefix": "ftdWeaponConstraints.MinElevation",
"body": [
"${1:WeaponConstraints}.MinElevation"
],
"description": ""
},
"WeaponConstraints.MaxElevation": {
"prefix": "ftdWeaponConstraints.MaxElevation",
"body": [
"${1:WeaponConstraints}.MaxElevation"
],
"description": ""
},
"WeaponConstraints.FlipAzimuth": {
"prefix": "ftdWeaponConstraints.FlipAzimuth",
"body": [
"${1:WeaponConstraints}.FlipAzimuth"
],
"description": ""
},
"WeaponConstraints.IsParentConstructSpace": {
"prefix": "ftdWeaponConstraints.IsParentConstructSpace",
"body": [
"${1:WeaponConstraints}.IsParentConstructSpace"
],
"description": ""
},
// Missile Warning
"I:GetNumberOfWarnings(mainframeIndex)": {
"prefix": "ftd:GetNumberOfWarnings",
"body": [
"I:GetNumberOfWarnings(${1:mainframeIndex})"
],
"description": "Inputs: mainframeIndex. [int] the index of the mainframe, 0 is the first one.\n\nOutputs: [int] the number of missiles being warned on\n\nReturn the number of missiles a specific mainframe has warnings for"
},
"I:GetMissileWarning(mainframeIndex, missileIndex)": {
"prefix": "ftd:GetMissileWarning",
"body": [
"I:GetMissileWarning(${1:mainframeIndex}, ${2:missileIndex})"
],
"description": "Inputs: mainframeIndex: [int] the index of the mainframe.\n
missileIndex [int] the index of the missile\n\nOutputs: [MissileWarningInfo] information on the missile. missileWarningInfo.Valid = false if you didn't request an existing missile index (or mainframe)\n\nRequest information on a specific missile warning"
},
// MissileWarningInfo
"MissileWarningInfo.Valid": {
"prefix": "ftdMissileWarningInfo.Valid",
"body": [
"${1:MissileWarningInfo}.Valid"
],
"description": "Valid: [bool] false if the warning is junk due to incorrect indices."
},
"MissileWarningInfo.Position": {
"prefix": "ftdMissileWarningInfo.Position",
"body": [
"${1:MissileWarningInfo}.Position"
],
"description": "Position: [Vector3] the position of the missile"
},
"MissileWarningInfo.Velocity": {
"prefix": "ftdMissileWarningInfo.Velocity",
"body": [
"${1:MissileWarningInfo}.Velocity"
],
"description": "Velocity: [Vector3] the velocity of the missile in meters per second"
},
"MissileWarningInfo.Range": {
"prefix": "ftdMissileWarningInfo.Range",
"body": [
"${1:MissileWarningInfo}.Range"
],
"description": "Range : [float] the distance from centre of mass of your construct to the missile"
},
"MissileWarningInfo.Azimuth": {
"prefix": "ftdMissileWarningInfo.Azimuth",
"body": [
"${1:MissileWarningInfo}.Azimuth"
],
"description": "Azimuth :[float] the azimuth angle between your construct's forward direction and the missile (degrees)"
},
"MissileWarningInfo.Elevation": {
"prefix": "ftdMissileWarningInfo.Elevation",
"body": [
"${1:MissileWarningInfo}.Elevation"
],
"description": "Elevation: [float] the elevation angle between your construct's forward direction and the missile (degrees)"
},
"MissileWarningInfo.TimeSinceLaunch": {
"prefix": "ftdMissileWarningInfo.TimeSinceLaunch",
"body": [
"${1:MissileWarningInfo}.TimeSinceLaunch"
],
"description": "TimeSinceLaunch: [float] the time since missile launch."
},
"MissileWarningInfo.Id": {
"prefix": "ftdMissileWarningInfo.Id",
"body": [
"${1:MissileWarningInfo}.Id"
],
"description": "Id: [int] the unique Id of the missile"
},
// MissileGuidance
"I:GetLuaTransceiverCount()": {
"prefix": "ftd:GetLuaTransceiverCount",
"body": [
"I:GetLuaTransceiverCount()"
],
"description": "Inputs: N/A\n\nOutputs: [int] the number of Lua Transceivers\n\nReturn the number of LuaTransceivers Each transceiver can have a number at missiles which are controllable"
},
"I:GetLuaControlledMissileCount(luaTransceiverIndex)": {
"prefix": "ftd:GetLuaControlledMissileCount",
"body": [
"I:GetLuaControlledMissileCount(${1:luaTransceiverIndex})"
],
"description": "Inputs: luaTransceiverIndex: [int] the index of the LuaTransceiver where 0 is the first one\n\nOutputs: [int] the number of missiles associated with that LuaTransceiver\n\nRetuins the number of missiles which that LuaTransceiver has communications link to"
},
"I:GetLuaTransceiverInfo(luaTransceiverIndex)": {
"prefix": "ftd:GetLuaTransceiverInfo",
"body": [
"I:GetLuaTransceiverInfo(${1:luaTransceiverIndex})"
],
"description": "Inputs: luaTransceiverIndex: [int] the index of the LuaTransceiver where 0 is the first one\n\nOutputs: [BiockInfo] a BlockInfo object for the LuaTransceiver's Launchpad\n\nReturns a BlockInfo obiect for the LuaTransceiver's Launchpad. If no Launch pad exists it'll return it for the LuaTransceiver."
},
"I:GetLuaControlledMissileInfo(luaTransceiverIndex,missileIndex)": {
"prefix": "ftd:GetLuaControlledMissileInfo",
"body": [
"I:GetLuaControlledMissileInfo(${1:luaTransceiverIndex}, ${2:missileIndex})"
],
"description": "Inputs: luaTransceiverIndex: [int] 0 is the first one.\n
missileIndex: [int] 0 is the first missile.\n\nOutputs: [MissileWarningInfo] Get a MissileWarningInfo object for your missile.\n\nReturns a MissileWarningInfo structure tor your missile. You can tell where it is and how fast it is going from this"
},
"I:SetLuaControlledMissileAimPoint(luaTransceiverIndex,missileIndex,x,y,z)": {
"prefix": "ftd:SetLuaControlledMissileAimPoint",
"body": [
"I:SetLuaControlledMissileAimPoint(${1:luaTransceiverIndex}, ${2:missileIndex}, ${3:x}, ${4:y}, ${5:z})"
],
"description": "Inputs: luaTransceiverIndex: [int] as above.\n
missileIndex: [int] as above.\n
x,y,z: [floats] global coordinates of the aim point\n\nOutputs: N/A\n\nSets the aim point. No guidance modules will help achieve this aim point so do your own predictive guidance. Needs a lua receiver component ON the missile to work."
},
"I:DetonateLuaControlledMissile(luaTransceiverIndex,missileIndex)": {
"prefix": "ftd:DetonateLuaControlledMissile",
"body": [
"I:DetonateLuaControlledMissile(${1:luaTransceiverIndex}, ${2:missileIndex})"
],
"description": "Inputs: luaTransceiverIndex [int] as above.\n
missileIndex: [int] as above.\n\nOutputs: N/A\n\nExplodes the missile. Needs a lua receiver component ON the missile to work."
},
"I:IsLuaControlledMissileAnInterceptor(luaTransceiverIndex,missileIndex)": {
"prefix": "ftd:IsLuaControlledMissileAnInterceptor",
"body": [
"I:IsLuaControlledMissileAnInterceptor(${1:luaTransceiverIndex}, ${2:missileIndex})"
],
"description": "Inputs: luaTranceiverIndex: [int] 0 is the first one\n
missileIndex: [int] 0 is the first one\n\nOutputs: [bool]: true means the missile has an interceptor module, otherwise false is returned. If the missile has no lua receiver false will be returned.\n\nFind out if the missile has an interceptor capability."
},
"I:SetLuaControlledMissileInterceptorTarget(luaTransceiverIndex,missileIndex,mainframeIndex, targetIndex)": {
"prefix": "ftd:SetLuaControlledMissileInterceptorTarget",
"body": [
"I:SetLuaControlledMissileInterceptorTarget(${1:luaTransceiverIndex}, ${2:missileIndex}, ${3:mainframeIndex}, ${4:targetIndex})"
],
"description": "Inputs: luaTransceiverIndex: [int] 0 is the first one\n
missileIndex: [int] 0 is the first one\n
mainframeIndex: [int] 0 is the first one\n
targetIndex: [int] 0 is the first missile which that mainframe has a warning for\n\nOutputs: [N/A]\n\nSet the target of an interceptor missile to be a specific missile tor which a warning exists. This is enough to get the interceptor missile to behave normally but it you want to actually guide it yourself use SetLuaControlledMissileInterceptorStandardGuidanceOnOff to turn the guidance oft."
},
"I:SetLuaControlledMissileInterceptorStandardGuidanceOnOff(luaTranceiver,missileIndex, onOff)": {
"prefix": "ftd:SetLuaControlledMissileInterceptorStandardGuidanceOnOff",
"body": [
"I:SetLuaControlledMissileInterceptorStandardGuidanceOnOff(${1:luaTranceiver}, ${2:missileIndex}, ${3:onOff})"
],
"description": "Inputs: luaTransceiverIndex: [int] 0 is the first one\n
missileIndex:[int] 0 is the first one\n
onOff: [bool] true will use standard missile guidance to aim at the interceptors target, false will rely on SetLuaControlledMissileAimPoint for aiming coordinates. Outputs: N/A\n\nTurns standard guidance tor the missile on and off. Turn it off it you're doing to guide the missile in yourself."
},
// SpinBlocks and pistons
"I:SetSpinBlockSpeedFactor(SubConstructIdentifier,speedFactor)": {
"prefix": "ftd:SetSpinBlockSpeedFactor",
"body": [
"I:SetSpinBlockSpeedFactor(${1:subConstructIdentifier}, ${2:speedFactor})"
],
"description": "指定したSpinBlockのDrive fractionを調整する。範囲は0~1"
},
"I:SetSpinBlockPowerDrive(SubConstructIdentifier,drive)": {
"prefix": "ftd:SetSpinBlockPowerDrive",
"body": [
"I:SetSpinBlockPowerDrive(${1:subConstructIdentifier}, ${2:drive})"
],
"description": "指定したSpinBlockのMotor Driveを調整する。範囲は0~10"
},
"I:SetSpinBlockRotationAngle(SubConstructIdentifier, angle)": {
"prefix": "ftd:SetSpinBlockRotationAngle",
"body": [
"I:SetSpinBlockRotationAngle(${1:subConstructIdentifier}, ${2:angle})"
],
"description": "指定したSpinBlockの角度を指定する"
},
"I:SetSpinBlockContinuousSpeed(SubConstructIdentifier, speed)": {
"prefix": "ftd:SetSpinBlockContinuousSpeed",
"body": [
"I:SetSpinBlockContinuousSpeed(${1:subConstructIdentifier}, ${2:speed})"
],
"description": "指定したSpinBlockの回転速度を指定する。範囲は-30~30"
},
"I:SetSpinBlockInstaSpin(SubConstructIdentifier,magnitudeAndDirection)": {
"prefix": "ftd:SetSpinBlockInstaSpin",
"body": [
"I:SetSpinBlockInstaSpin(${1:subConstructIdentifier}, ${2:magnitudeAndDirection})"
],
"description": "指定したSpinBlockをInstaSpinさせる。1で正方向、-1で負方向に最高速度で回る"
},
"I:GetPistonExtension(SubConstructIdentifier)": {
"prefix": "ftd:GetPistonExtension",
"body": [
"I:GetPistonExtension(${1:subConstructIdentifier})"
],
"description": "指定したPistonのExtension(伸長)を返す。存在しない場合は-1を返す"
},
"I:GetPistonVelocity(SubConstructIdentifier)": {
"prefix": "ftd:GetPistonVelocity",
"body": [
"I:GetPistonVelocity(${1:subConstructIdentifier})"
],
"description": "指定したPistonのVelocity(速度)を返す。存在しない場合は-1を返す"
},
"I:SetPistonExtension(SubConstructIdentifier,ExtensionDistance)": {
"prefix": "ftd:SetPistonExtension",
"body": [
"I:SetPistonExtension(${1:subConstructIdentifier}, ${2:extensionDistance})"
],
"description": "指定したPistonのExtension(伸長)を調整する。単位はメートル(m)"
},
"I:SetPistonVelocity(SubConstructIdentifier,ExtensionVelocity)": {
"prefix": "ftd:SetPistonVelocity",
"body": [
"I:SetPistonVelocity(${1:subConstructIdentifier}, ${2:extensionVelocity})"
],
"description": "指定したPistonのVelocity(速度)を調整する。単位はメートル毎秒(m/s)、範囲は0.1~2"
},
"I:GetDedibladeCount()": {
"prefix": "ftd:GetDedibladeCount",
"body": [
"I:GetDedibladeCount()"
],
"description": "Dedibladeの数を得る"
},
"I:GetDediBladeInfo(DedibladeIndex)": {
"prefix": "ftd:GetDediBladeInfo",
"body": [
"I:GetDediBladeInfo(${1:dedibladeIndex})"
],
"description": "指定したDedibladeのBlockInfoの情報を得る"
},
"I:IsDediBladeOnHull(DedibladeIndex)": {
"prefix": "ftd:IsDediBladeOnHull",
"body": [
"I:IsDediBladeOnHull(${1:dedibladeIndex})"
],
"description": "指定したDedibladeが船体に乗っている場合trueが得られる。サブオブジェクト上に乗っている場合はfalse"
},
"I:SetDedibladeSpeedFactor(DedibladeIndex,speedFactor)": {
"prefix": "ftd:SetDedibladeSpeedFactor",
"body": [
"I:SetDedibladeSpeedFactor(${1:dedibladeIndex}, ${2:speedFactor})"
],
"description": "指定したDedibladeのDrive fractionを調整する。範囲は0~1"
},
"I:SetDedibladePowerDrive(DedibladeIndex,drive)": {
"prefix": "ftd:SetDedibladePowerDrive",
"body": [
"I:SetDedibladePowerDrive(${1:dedibladeIndex}, ${2:drive})"
],
"description": "指定したDedibladeのMotor Driveを調整する。範囲は0~10"
},
"I:SetDedibladeContinuousSpeed(DedibladeIndex, speed)": {
"prefix": "ftd:SetDedibladeContinuousSpeed",
"body": [
"I:SetDedibladeContinuousSpeed(${1:dedibladeIndex}, ${2:speed})"
],
"description": "指定したDedibladeの回転速度を指定する。範囲は-30~30"
},
"I:SetDedibladeInstaSpin(DedibladeIndex,magnitudeAndDirection)": {
"prefix": "ftd:SetDedibladeInstaSpin",
"body": [
"I:SetDedibladeInstaSpin(${1:dedibladeIndex}, ${2:magnitudeAndDirection})"
],
"description": "指定したDedibladeをInstaSpinさせる。1で正方向、-1で負方向に最高速度で回る"
},
"I:SetDedibladeUpFraction(DedibladeIndex,upFraction)": {
"prefix": "ftd:SetDedibladeUpFraction",
"body": [
"I:SetDedibladeUpFraction(${1:dedibladeIndex}, ${2:upFraction})"
],
"description": "指定したDedibladeのAlways up fractionを調整する。範囲は0~1"
},
"I:GetSpinnerCount()": {
"prefix": "ftd:GetSpinnerCount",
"body": [
"I:GetSpinnerCount()"
],
"description": "Inputs: N/A\n\nOutputs: [int] the number of spinners. This includes 'dedicated helispinners', which may be mounted on traditional spin blocks.\n\nReturns the number of spin blocks and dedicated helispinners"
},
"I:GetSpinnerInfo(index)": {
"prefix": "ftd:GetSpinnerInfo",
"body": [
"I:GetSpinnerInfo(${1:index})"
],
"description": "Inputs: indexr: [int] 0 is the first spin block\n\nOutputs: [BlockInfo] a block info object for the spin block.\n\nReturns block info for the spinner. For a spin block it will return block info where local positions and rotations are those of the actual spinning assembly. not the block itself."
},
"I:SetSpinnerSpeedFactor(index,speedFactor)": {
"prefix": "ftd:SetSpinnerSpeedFactor",
"body": [
"I:SetSpinnerSpeedFactor(${1:index}, ${2:speedFactor})"
],
"description": "Inputs: index: [int] the index of the spinner.\n
speedFactor: [float] 0 to 1, the fractional power output\n\nOutputs: N/A\n\nSet the speed factor, In continuous mode spinners this allows some blades to spin slower than others, in insta-spin blades this is related to the speed they are spinning at (1 is max speed. 0 is no speed). and in rotation spinners this does nothing."
},
"I:SetSpinnerPowerDrive(index,drive)": {
"prefix": "ftd:SetSpinnerPowerDrive",
"body": [
"I:SetSpinnerPowerDrive(${1:index}, ${2:drive})"
],
"description": "Inputs: index: [int] the index of the spinner. 0 is the first.\n
drive: [float] the relative power use of the spinner (0 to 10).\n\nOutputs: N/A\n\nSets the power drive. this allows heliblades to produce more force. Requires engine power. 0 removes engine use. 10 is maximum power use."
},
"I:SetSpinnerRotationAngle(index, angle)": {
"prefix": "ftd:SetSpinnerRotationAngle",
"body": [
"I:SetSpinnerRotationAngle(${1:index}, ${2:angle})"
],
"description": "Inputs: index: [int] 0 is the first spinner.\n
angle: [float] angle in degrees to turn to.\n\nOutputs: N/A\n\nSets the angle of rotation. Chanqes the spinner into Rotate mode. 'Rotatebackwards' is not available through this interface but you shouldn't need it."
},
"I:SetSpinnerContinuousSpeed(index, speed)": {
"prefix": "ftd:SetSpinnerContinuousSpeed",
"body": [
"I:SetSpinnerContinuousSpeed(${1:index}, ${2:speed})"
],
"description": "Inputs: index: [int] 0 is the first spinner.\n
speed: [float] speed to rotate at. 30 is the maximum so values from -30 to 30 work.\n\nOutputs:\n\nSets the speed of rotation, Changes the spinner into continuous mode. 'ContinuouseReverse' mode is not available through this interface so set the speed neqative to facilitate reverse spinning."
},
"I:SetSpinnerInstaSpin(index,magnitudeAndDirection)": {
"prefix": "ftd:SetSpinnerInstaSpin",
"body": [
"I:SetSpinnerInstaSpin(${1:index}, ${2:magnitudeAndDirection})"
],
"description": "Inputs: index: [int] 0 is the first spinner.\n
magnitudeAndDirection: [float] -1 means spin backwards full speed, 1 is spin forwards full speed\n\nOutputs: N/A\n\nSpins the blades in a direction and speed determined by magnitudeAndDirection. Will set the spinner into instaspin forwards mode and will affect speed factor variable of the spinner."
},
"I:IsSpinnerDedicatedHelispinner(index)": {
"prefix": "ftd:IsSpinnerDedicatedHelispinner",
"body": [
"I:IsSpinnerDedicatedHelispinner(${1:index})"
],
"description": "Inputs: index: [int] 0 is the first spinner.\n\nOutputs: [boot] true if the spinner is a dedicated spinner.\n\nReturns whether the spinner in question is a dedicated helispinner"
},
"I:IsSpinnerOnHull(index)": {
"prefix": "ftd:IsSpinnerOnHull",
"body": [
"I:IsSpinnerOnHull(${1:index})"
],
"description": "Inputs: index: [int] 0 is the first spinner\n\nOutputs: [bool] true if on hull\n\nReturns whether the spinner is on the hull or on another spin block. This can only be true for dedicated helispinners"
},
"I:SetDedicatedHelispinnerUpFraction(index,upFraction)": {
"prefix": "ftd:SetDedicatedHelispinnerUpFraction",
"body": [
"I:SetDedicatedHelispinnerUpFraction(${1:index}, ${2:upFraction})"
],
"description": "Inputs: index: [int] 0 is the first spinner.\n
upFraction: [float] 0 to 1.\n\nOutputs: N/A\n\nOnly works for dedicated helispinners. Sets the fraction of the force that will be applied directly upwards. reqardless of blade orientation."
},
// SubConstructs
"I:GetAllSubConstructs()": {
"prefix": "ftd:GetAllSubConstructs",
"body": [
"I:GetAllSubConstructs()"
],
"description": "すべてのサブオブジェクトのインデックスをテーブルで返す"
},
"I:GetAllSubConstructChildren(subConstructIdentifier)": {
"prefix": "ftd:GetAllSubConstructChildren",
"body": [
"I:GetAllSubConstructChildren(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクト上に直接置かれている子サブオブジェクトのインデックスをテーブルで返す(孫サブオブジェクトは含まれない)"
},
"I:GetParent(subConstructIdentifier)": {
"prefix": "ftd:GetParent",
"body": [
"I:GetParent(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクトの親サブオブジェクトのインデックスを返す(船体の場合0、取得できない場合-1が返る)"
},
"I:IsTurret(subConstructIdentifier)": {
"prefix": "ftd:IsTurret",
"body": [
"I:IsTurret(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクトがターレットならTrue、そうでないならFalseを返す"
},
"I:IsSpinBlock(subConstructIdentifier)": {
"prefix": "ftd:IsSpinBlock",
"body": [
"I:IsSpinBlock(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクトがスピンブロックならTrue、そうでないならFalseを返す"
},
"I:IsPiston(subConstructIdentifier)": {
"prefix": "ftd:IsPiston",
"body": [
"I:IsPiston(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクトがピストンならTrue、そうでないならFalseを返す"
},
"I:IsAlive(subConstructIdentifier)": {
"prefix": "ftd:IsAlive",
"body": [
"I:IsAlive(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクトが破壊されていないならTrue、破壊されていればFalseを返す"
},
"I:IsSubConstructOnHull(subConstructIdentifier)": {
"prefix": "ftd:IsSubConstructOnHull",
"body": [
"I:IsSubConstructOnHull(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクトが船体に乗っている場合trueが得られる。サブオブジェクト上に乗っている場合はfalse"
},
"I:GetSubConstructInfo(subConstructIdentifier)": {
"prefix": "ftd:GetSubConstructInfo",
"body": [
"I:GetSubConstructInfo(${1:subConstructIdentifier})"
],
"description": "指定したサブオブジェクトのBlockInfoの情報を得る"
},
// Friendlies
"I:GetFriendlyCount()": {
"prefix": "ftd:GetFriendlyCount",
"body": [
"I:GetFriendlyCount()"
],
"description": "Inputs: N/A\n\nOutputs: [int] the number of friendlies spawned into the world\n\nReturns the number of lriencllv constructs"
},
"I:GetFriendlyInfo(index)": {
"prefix": "ftd:GetFriendlyInfo",
"body": [
"I:GetFriendlyInfo(${1:index})"
],
"description": "Inputs: index: [int] 0 is the first construct\n\nOutputs: [FriendlyInfo] the FriendlyInfo object\n\nReturns a friendly info obiect for a friendly vehicle"
},
"I:GetFriendlyInfoById(Id)": {
"prefix": "ftd:GetFriendlyInfoById",
"body": [
"I:GetFriendlyInfoById(${1:Id})"
],
"description": "Inputs: Id: [int] the Id you want\n\nOutputs: [FriendlyInfo] the FriendlyInfo object\n\nReturns a friendly info obiect for an Id"
},
// FriendlyInfo
"FriendlyInfo.Valid": {
"prefix": "ftdFriendlyInfo.Valid",
"body": [
"${1:FriendlyInfo}.Valid"
],
"description": "Valid:[bool] false if the Friendly Info could not be retrieved"
},
"FriendlyInfo.Rotation": {
"prefix": "ftdFriendlyInfo.Rotation",
"body": [
"${1:FriendlyInfo}.Rotation"
],
"description": "Rotation:[Quatemion] the rotation of the friendly construct"
},
"FriendlyInfo.ReferencePosition": {
"prefix": "ftdFriendlyInfo.ReferencePosition",
"body": [
"${1:FriendlyInfo}.ReferencePosition"
],
"description": "ReferencePosition: [Vector3] the position of the construct (world East Up North frame) from which PositiveSize and Negative size are referenced"
},
"FriendlyInfo.PositiveSize": {
"prefix": "ftdFriendlyInfo.PositiveSize",
"body": [
"${1:FriendlyInfo}.PositiveSize"
],
"description": "PositiveSize: [Vector3] the extent of the construct in the right,up,forwards direction relative to ReferencePosition"
},
"FriendlyInfo.NegativeSize": {
"prefix": "ftdFriendlyInfo.NegativeSize",
"body": [
"${1:FriendlyInfo}.NegativeSize"
],
"description": "NegativeSize: [Vector3] the extent of the construct in the left,down,back direction relative to ReferencePosition"
},
"FriendlyInfo.CenterOfMass": {
"prefix": "ftdFriendlyInfo.CenterOfMass",
"body": [
"${1:FriendlyInfo}.CenterOfMass"
],
"description": "CenterOfMass: [Vector3] the centre of mass of the construct in world East Up North frame"
},
"FriendlyInfo.Velocity": {
"prefix": "ftdFriendlyInfo.Velocity",
"body": [
"${1:FriendlyInfo}.Velocity"
],
"description": "Velocity: [Vector3] the velocity of the construct in world East Up North frame"
},
"FriendlyInfo.UpVector": {
"prefix": "ftdFriendlyInfo.UpVector",
"body": [
"${1:FriendlyInfo}.UpVector"
],
"description": "UpVector: [Vector3] The up vector in world East Up North frame"
},
"FriendlyInfo.RightVector": {
"prefix": "ftdFriendlyInfo.RightVector",
"body": [
"${1:FriendlyInfo}.RightVector"
],
"description": "RightVector: [Vector3] The up vector in world East Up North frame"
},
"FriendlyInfo.ForwardVector": {
"prefix": "ftdFriendlyInfo.ForwardVector",
"body": [
"${1:FriendlyInfo}.ForwardVector"
],
"description": "ForwardVector: [Vector3] The forward vector in world East Up North frame"
},
"FriendlyInfo.HealthFraction": {
"prefix": "ftdFriendlyInfo.HealthFraction",
"body": [
"${1:FriendlyInfo}.HealthFraction"
],
"description": "HealthFraction: [float] the fraction of health (including turrets etc)"
},
"FriendlyInfo.SparesFraction": {
"prefix": "ftdFriendlyInfo.SparesFraction",
"body": [
"${1:FriendlyInfo}.SparesFraction"
],
"description": "SparesFraction: [float] the spores fraction. Returns 1 if no spares storage present"
},
"FriendlyInfo.AmmoFraction": {
"prefix": "ftdFriendlyInfo.AmmoFraction",
"body": [
"${1:FriendlyInfo}.AmmoFraction"
],
"description": "AmmoFraction: [float] the ammo fraction. Returns 1 if no spares storage present"
},
"FriendlyInfo.FuelFraction": {
"prefix": "ftdFriendlyInfo.FuelFraction",
"body": [
"${1:FriendlyInfo}.FuelFraction"
],
"description": "FuelFraction: [float] the fuel fraction. Returns 1 if no spares storage present"
},
"FriendlyInfo.EnergyFraction": {
"prefix": "ftdFriendlyInfo.EnergyFraction",
"body": [
"${1:FriendlyInfo}.EnergyFraction"
],
"description": ""
},
"FriendlyInfo.PowerFraction": {
"prefix": "ftdFriendlyInfo.PowerFraction",
"body": [
"${1:FriendlyInfo}.PowerFraction"
],
"description": ""
},
"FriendlyInfo.ElectricPowerFraction": {
"prefix": "ftdFriendlyInfo.ElectricPowerFraction",
"body": [
"${1:FriendlyInfo}.ElectricPowerFraction"
],
"description": ""
},
"FriendlyInfo.AxisAlignedBoundingBoxMinimum": {
"prefix": "ftdFriendlyInfo.AxisAlignedBoundingBoxMinimum",
"body": [
"${1:FriendlyInfo}.AxisAlignedBoundingBoxMinimum"
],
"description": "AxisAlignedBoundingBoxMinimum: [Vector3] the world East Up North minimum extent of the construct"
},
"FriendlyInfo.AxisAlignedBoundingBoxMaximum": {
"prefix": "ftdFriendlyInfo.AxisAlignedBoundingBoxMaximum",
"body": [
"${1:FriendlyInfo}.AxisAlignedBoundingBoxMaximum"
],
"description": "AxisAlignedBoundingBoxMaximum: [Vector3] the world East Up North maximum extent of the construct"
},
"FriendlyInfo.BlueprintName": {
"prefix": "ftdFriendlyInfo.BlueprintName",
"body": [
"${1:FriendlyInfo}.BlueprintName"
],
"description": "BlueprintName: [string] the name"
},
"FriendlyInfo.Id": {
"prefix": "ftdFriendlyInfo.Id",
"body": [
"${1:FriendlyInfo}.Id"
],
"description": "Id: [int] the unique Id of the construct"
},
// Math and Other
"I:Maths_AngleBetweenVectors(x1,y1,z1,x2,y2,z2)": {
"prefix": "ftd:Maths_AngleBetweenVectors",
"body": [
"I:Maths_AngleBetweenVectors(${1:x1},${2:y1},${3:z1},${4:x2},${5:y2},${6:z2})"
],
"description": "2つのベクトルの角度を表示する(鋭角)"
},
"I:QuaternionToEulerAngles(quaternion)": {
"prefix": "ftd:QuaternionToEulerAngles",
"body": [
"I:QuaternionToEulerAngles(${1:quaternion})"
],
"description": "クウォータニオンからベクトル成分(オイラー角)に変換"
},
"I:Maths_CreateQuaternion(forward,up)": {
"prefix": "ftd:Maths_CreateQuaternion",
"body": [
"I:Maths_CreateQuaternion(${1:forward}, ${2:up})"
],
"description": "2つのベクトルからクウォータニオンを生成"
},
"I:Maths_CreateVector3(x,y,z)": {
"prefix": "ftd:Maths_CreateVector3",
"body": [
"I:Maths_CreateVector3(${1:x}, ${2:y}, ${3:z})"
],
"description": "3つの値からVector3を生成"
},
"I:Maths_RotateVector3(Vector3,Quaternion)": {
"prefix": "ftd:Maths_RotateVector3",
"body": [
"I:Maths_RotateVector3(${1:Vector3}, ${2:Quaternion})"
],
"description": "クウォータニオンを使用しベクトルを回転させる"
},
"I:Crash()": {
"prefix": "ftd:Crash",
"body": [
"I:Crash()"
],
"description": "任意にクラッシュさせる"
},
}
@tvagames
Copy link
Author

v2.4.5.6 に対応

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment