HowTo:Edit Missions:Python:Bindings:Python

From VsWiki
Jump to: navigation, search
thumb_arrow_up.png Bindings

class Unit:
 #don't call this one :-) it's just there in the stub ... really make units with the VS.launch above
  def __init__(self):
    print 'Unit constructor called with (self)'

 # 1 "python_unit_wrap.h" 1

 #make this unit warp to "un" and possibly ignore friendly targets. when computing if allowed
  def AutoPilotTo(self,un,ignore_friendlies):
   print "AutoPilotTo"
   return 0
 #sets the turret AI to actually fire a turret
  def SetTurretAI(self):
   print "SetTurretAI"
 #tells teh turret AI never to fire
  def DisableTurretAI(self):
   print "DisableTurretAI"
 #drains power of a unit
  def leach(self,XshieldPercent,YrechargePercent,ZenergyPercent):
   print "leach"
 #figures out what rank in the flightgroup is the unit (-1 if no flightgroup or unit dead)
  def getFgSubnumber(self):
   print "getFgSubnumber"
   return -1
 #gets the ID of the flightgroup
  def getFgID(self):
   print "getFgID"
   return string()
 #sets the unit's nickname
  def setFullname(self,name):
   print "setFullname"
 #gets the unit's nickname
  def getFullname(self):
   print "getFullname"
   return string()
 #debug
  def getFullAIDescription(self):
   print "getFullAIDescription"
   return string()
 #not sure!!
  def setTargetFg(self,primary,secondary,tertiary):
   print "setTargetFg"
 #not sure again..perhaps targets a flihgtgroup? probably slow
  def ReTargetFg(self,which_target):
   print "ReTargetFg"
 #if self is a starship as opposed to planet, asteroid, etc
  def isStarShip(self):
   print "isStarShip"
   return 0
 #if the self is a planet
  def isPlanet(self):
   print "isPlanet"
   return 0
 #if the self is a jump point
  def isJumppoint(self):
   print "isJumppoint"
   return 0
 #if the other is an enemey
  def isEnemy(self,other):
   print "isEnemy"
   return 0
 #if the enemy is a friend
  def isFriend(self,other):
   print "isFriend"
   return 0
 #if enemy is neutral
  def isNeutral(self,other):
   print "isNeutral"
   return 0
 #get the numerical relation btw -1 and 1 of this with other (may not be the same as other and this)
  def getRelation(self,other):
   print "getRelation"
   return 0
 #switches missile
  def ToggleWeapon(self,Missile):
   print "ToggleWeapon"
 #turns on all missiles
  def SelectAllWeapon(self,Missile):
   print "SelectAllWeapon"
 #splits a unit into many shrapnel... not 100% sure this works
  def Split(self,level):
   print "Split"
 #don't call
  def Init(self):
   print "Init"
 #turns on the jump drive (provided energy) this will cause the unit to teleport upon hitting a jump point
 #this also causes the default AI to go for targetted jump points like there's no tomorrow.
 #Desintation should be 0 for now
  def ActivateJumpDrive(self,destination):
   print "ActivateJumpDrive"
 #this turns off an active jump drive
  def DeactivateJumpDrive(self):
   print "DeactivateJumpDrive"
 #destroys this unit with explosion...preferrable to deliver damage or to just plain call Kill()
  def Destroy(self):
   print "Destroy"
 #finds the local coordinates of another unit in this unit's space
  def LocalCoordinates(self,un):
   print "LocalCoordinates"
   return (0,0,0)
 #is another unit in range of this
  def InRange(self,target,cone,cap):
   print "InRange"
   return 0
 #is this unit visible?
  def CloakVisible(self):
   print "CloakVisible"
   return 0
 #Please cloak this unit
  def Cloak(self,cloak):
   print "Cloak"
 #debug I think!!
  def RemoveFromSystem(self):
   print "RemoveFromSystem"
 #find this unit's position if a unit at local_posit fired a shot at speed "speed"
  def PositionITTS(self,local_posit,speed):
   print "PositionITTS"
   return (0,0,0)
 #the actual position of this unit
  def Position(self):
   print "Position"
   return (0,0,0)
 #position of this unit based on its owning unit (i.e. if it is a turret) or else space for most units
  def LocalPosition(self):
   print "LocalPosition"
   return (0,0,0)
 #the unit that is threatening this unit
  def Threat(self):
   print "Threat"
   return Unit()
 #set the turrets to target the target passed in
  def TargetTurret(self,targ):
   print "TargetTurret"
 #get an iterator to the subunits
  def getSubUnits(self):
   print "getSubUnits"
   return 0
 #threaten  the target (placing this unit in the Threat() variable)
  def Threaten(self,targ,danger):
   print "Threaten"
 #set the threat level to zero
  def ResetThreatLevel(self):
   print "ResetThreatLevel"
 #fire guns or (if missile is 1) missiles
  def Fire(self,Missile):
   print "Fire"
 #turn off beams
  def UnFire(self):
   print "UnFire"
 #how far have our missiles locked
  def computeLockingPercent(self):
   print "computeLockingPercent"
   return 0
 #what percent is our shield
  def FShieldData(self):
   print "FShieldData"
   return 0
  def RShieldData(self):
   print "RShieldData"
   return 0
  def LShieldData(self):
   print "LShieldData"
   return 0
  def BShieldData(self):
   print "BShieldData"
   return 0
 #how much fuel have we
  def FuelData(self):
   print "FuelData"
   return 0
 #how much energy
  def EnergyData(self):
   print "EnergyData"
   return 0
 #how much hull
  def GetHull(self):
   print "GetHull"
   return 0
 #how big is this unit
  def rSize(self):
   print "rSize"
   return 0
 #how far away is this unit from a point
  def getMinDis(self,pnt):
   print "getMinDis"
   return 0
 #is a beam (starting at start, ending at end) going through a bubble around this unit
  def querySphere(self,start,end,my_unit_radius):
   print "querySphere"
   return 0
 #is a beam starting at origin with direction going through this unit
  def queryBoundingBox(self,origin,direction,err):
   print "queryBoundingBox"
   return 0
 #reset all orders to "sitting duck"
  def PrimeOrders(self):
   print "PrimeOrders"
 #load an AI script given the name
  def LoadAIScript(self,aiscript):
   print "LoadAIScript"
 #load the last script that was constructed from VS.PythonAI
  def LoadLastPythonAIScript(self):
   print "LoadLastPythonAIScript"
   return 0
 #enqueue that script into the end of the given scripts
  def EnqueueLastPythonAIScript(self):
   print "EnqueueLastPythonAIScript"
   return 0
 #set the position to be pos
  def SetPosition(self,pos):
   print "SetPosition"
 #set the current position (causing the unit to streak over to that position in a number of frames)
  def SetCurPosition(self,pos):
   print "SetCurPosition"
 #sets all positions to be that position
  def SetPosAndCumPos(self,pos):
   print "SetPosAndCumPos"
 #rotation on that axis
  def Rotate(self,axis):
   print "Rotate"
  def ApplyForce(self,Vforce):
   print "ApplyForce"
  def ApplyLocalForce(self,Vforce):
   print "ApplyLocalForce"
  def Accelerate(self,Vforce):
   print "Accelerate"
  def ApplyTorque(self,Vforce,Location):
   print "ApplyTorque"
  def ApplyBalancedLocalTorque(self,Vforce,Location):
   print "ApplyBalancedLocalTorque"
  def ApplyLocalTorque(self,torque):
   print "ApplyLocalTorque"
 #deals damage to the hull based on a local coordinate point
  def DealDamageToHull(self,pnt,Damage):
   print "DealDamageToHull"
   return 0
 #finds a thrust vector based on the thrust passed in (given the fact that thrusters are finite powered)
  def ClampThrust(self,thrust,afterburn):
   print "ClampThrust"
   return (0,0,0)
 #thrust in a direction
  def Thrust(self,amt,afterburn):
   print "Thrust"
 #give lateral thrust
  def LateralThrust(self,amt):
   print "LateralThrust"
  def VerticalThrust(self,amt):
   print "VerticalThrust"
  def LongitudinalThrust(self,amt):
   print "LongitudinalThrust"
 #clamp the velocity of a unit to its max speed
  def ClampVelocity(self,velocity,afterburn):
   print "ClampVelocity"
   return (0,0,0)
 #clamp a rotation of the unit to max yaw/pitch/roll
  def ClampAngVel(self,vel):
   print "ClampAngVel"
   return (0,0,0)
 #clamp angular acceleration to a vector
  def ClampTorque(self,torque):
   print "ClampTorque"
   return (0,0,0)
 #sets the orientation given the up and fore vector (q and r respectiveoly)
  def SetOrientation(self,q,r):
   print "SetOrientation"
 #translate from the previous space to this space (without translation)
  def UpCoordinateLevel(self,v):
   print "UpCoordinateLevel"
   return (0,0,0)
 #translate from this space down to the world space  (without translation)
  def DownCoordinateLevel(self,v):
   print "DownCoordinateLevel"
   return (0,0,0)
 #goes from world space to this coordinates including translation_
  def ToLocalCoordinates(self,v):
   print "ToLocalCoordinates"
   return (0,0,0)
 #goes from this coordinates to world coordinates including translation
  def ToWorldCoordinates(self,v):
   print "ToWorldCoordinates"
   return (0,0,0)
 #gets the angular velocity
  def GetAngularVelocity(self):
   print "GetAngularVelocity"
   return (0,0,0)
 #gets velocity
  def GetVelocity(self):
   print "GetVelocity"
   return (0,0,0)
  def SetVelocity(self,v):
   print "SetVelocity"
  def SetAngularVelocity(self,v):
   print "SetAngularVelocity"
  def GetMoment(self):
   print "GetMoment"
   return 0
  def GetMass(self):
   print "GetMass"
   return 0
 #is a missile locked?
  def LockMissile(self):
   print "LockMissile"
   return 0
 #enject cargo with that index (-1 is ejector seat)
  def EjectCargo(self,index):
   print "EjectCargo"
 #what would this unti pay for the cargo string passed in)
  def PriceCargo(self,s):
   print "PriceCargo"
   return 0
 #how cargos does this unit have
  def numCargo(self):
   print "numCargo"
   return 0
 #is the docking unit cleared with this one
  def IsCleared(self,dockingunit):
   print "IsCleared"
   return 0
 #get an entire category from teh master part list and add it to the hold
  def ImportPartList(self,category,price,pricedev,quantity,quantdev):
   print "ImportPartList"
   #docking unit wants to request clearence to self
  def RequestClearance(self,dockingunit):
   print "RequestClearance"
   return 0
 #is the unit docked already?
  def isDocked(self,dockingUnit):
   print "isDocked"
   return 0
 #try to dock (if in white square) with the unittoDockWith otherwise return false
  def Dock(self,unitToDockWith):
   print "Dock"
   return 0
 #try to undock with the unitToDockWith...on success return 1
  def UnDock(self,unitToDockWith):
   print "UnDock"
   return 0
 #get number of gunso n this ship (and missiles)
  def GetNumMounts(self):
   print "GetNumMounts"
   return 0
 #teleport to that other system (as a string) loads if necessary
  def JumpTo(self,systemstring):
   print "JumpTo"
   return 0
 #gets the faction name of this unit
  def getFactionName(self):
   print "getFactionName"
   return ''
 #gets the faciton index
  def getFactionIndex(self);
   print "getFactionIndex"
   return 0
 #sets the faction name (who ownz this unit)
  def setFactionName(self,strname):
   print "setFactionName"
   #who owns this
  def setFactionIndex(self,factionindex):
   print "setFactionIndex"
  def getName(self):
   print "getName"
   return ''
  def getFlightgroupName(self):
   print "getFlightgroupName"
   return ''
  def getFgDirective(self):
   print "getFgDirective"
   return ''
 #gets a unit who is the leader of this flightgroup...returns this if no flightgroup
  def getFlightgroupLeader(self):
   print "getFlightgroupLeader"
   return Unit()
 #gimme (this unit) money (can be negative)
  def addCredits(self,floatcache):
   print "addCredits"
   #switch to another lfightgroup
  def switchFg(self,fgname):
   print "switchFg"
   #how much cache do I have (money)
  def getCredits(self):
   print "getCredits"
   return 0
 #set the leader
 def setFlightgroupLeader(self,leader):
   print "setFlightgroupLeader"
   return 0
 #not sure
  def setFgDirective(a=None,b=None,c=None,d=None,e=None,f=None,g=None,h=None,i=None,j=None):
   print "setFgDirective"
   return 0
 #how leaderful am I
  def getFgSubnumber(self):
   print "getFgSubnumber"
   return -1
 #is this unit a significant object (base, jump point, planet)
  def isSignificant(self):
   print "isSignificant"
   return 0

  def isSun(self):
   print "isSun"
   return 0
 #communicate to other unit
  def communicateTo(self,other):
   print "communicateTo"
   return 0
 #maek comm animation appear on screen of target
  def commAnimation(self, stringanimation):
   print "commAnimation"
   return 0
 #remove a crago from this unit
  def removeCargo(self, stringcargo,quantity):
   print "removeCargo"
   return 0
 #add another units stats to my own... in the upgrades/unitfile/unitfile
  def upgrade(self, unitfile,force, subunitoffset, mountoffset):
   print "upgrade"
   return 0
 #add cargo to my unit
  def addCargo(self,Cargo carg):
   print "addCargo"
   return 0
 #get distance (minus radii) between self and other
  def getDistance(self, other):
   print "getDistance"
   return 0
 #increment random cargo
  def incrementCargo(a=None,b=None,c=None,d=None,e=None,f=None,g=None,h=None,i=None,j=None):
   print "incrementCargo"
   return 0
 #decrement random cargo
  def decrementCargo(a=None,b=None,c=None,d=None,e=None,f=None,g=None,h=None,i=None,j=None):
   print "decrementCargo"
   return 0
 #get distance plus atmospheric size if large planet (to prevent players from coming too close
 #to surface when leaving autopilot
  def getSignificantDistance(self,other):
   print "getSignificantDistance"
   return 0
 #is this unit a player starship...if not return -1  else return player number (starting at 0)
  def isPlayerStarship(a=None,b=None,c=None,d=None,e=None,f=None,g=None,h=None,i=None,j=None):
   print "isPlayerStarship"
   return -1
 #does this unit have some cargo
  def hasCargo(self,mycarg):
   print "hasCargo"
   return 0
 #retuns cargo if the unit has it by that name else returns cargo with 0 quantity
  def GetCargo(self,cargoname):
   print "GetCargo"
   return Cargo("","",1,1,1,1)
 # 351 "unit_wrapper.cpp" 2
 #is this unti equal to another
  def __eq__(self,oth):
   print "__eq__"
   return 0;
 #is this unit notequal
  def __ne__(self,oth):
   print "__ne__"
   return 1;
 #remove unit from game the correct way
  def Kill(self):
   print "Kill";
   #set this unit to be null (doesnt' affect unit itself, only this pointer)
  def setNull(self):
   print "setNull";
   #is this unit not null
  def __nonzero__(self):
   print "__nonzero__"
   return random.randrange(0,2);
 #is this unit NULL (i.e. dead or killed)
  def isNull(self):
   print "isNull"
   return random.randrange(0,2);
 #set this units' target to un
  def SetTarget(self,un):
   print "SetTarget";
   #get this unit's current target
  def GetTarget(self):
   print "GetTarget"
   return Unit();
 #get the unit that this unit is matching speed with
  def GetVelocityReference(self):
   print "GetVelocityReference"
   return Unit()
 #set the unit this unit is matching speed with
  def SetVelocityReference(self,un):
   print "SetVelocityReference";
   #get orientation of this unit
  def GetOrientation(self):
   print "GetOrientation"
   return ((1,0,0),(0,1,0),(0,0,1))
 #is the beam inside this ship
  def queryBSP(self,start,end):
   print "queryBSP"
   return (un,(0,0,1),0)
 #how far off is this unit to another unit with guns that have speed and range) (returns a tuple
 #with a cosine and a range normalized between 0 and 1)
  def cosAngleToITTS(self,un,speed,range):
   print "cosAngleToITTS"
   return (.95,10000)
 #same as above but assuming guns are instant
  def cosAngleTo(self,un):
   print "cosAngleTo"
   return (.93,10000)
 #more specific to this ship and very slow
  def cosAngleFromMountTo(self,un):
   print "cosAngleFromMountTo"
   return (.93,10000)
 #gets the gun speed of this ship
  def getAverageGunSpeed(self):
   print "getAverageGunSpeed"
   return (200,10000)
 #is another unit inside this unit
  def InsideCollideTree(self,un):
   print "InsideCollideTree"
   return ((0,0,0),(0,0,1),(0,0,0),(0,1,0))
 #get a particular turret
  def getSubUnit(self,which):
   print "getSubUnit"
   return Unit()

 #this is the unit iterator class...  it is returned in a number of functions... DO NOT keep this
 #across a frame (i.e. save it after Execute()
class un_iter:
  #dont' call this...stub only
  def __init__(self):
    print 'un_iter constructor called with (self)'
 #the unit this iterator is pointing to (may well be null...that's how you know to stop checking)
  def current(self):
   print "current"
   return Unit()
 #advance this iterator (check to see if null first!!)
  def advance(self):
   print "advance"
   #remove this unit from the collection in wchih it is in
  def remove(self):
   print "remove"
   #add a unit to this collection
  def preinsert(self,un):
   print "preinsert"

class Cargo:
  def __init__ (self,a,b,c,d,e,f):
    print 'Cargo constructor called with (self,%s,%s,%f,%d,%f,%f)' % (a,b,c,d,e,f)
  def SetPrice(self,price):
   print "SetPrice"
  def GetPrice(self):
   print "GetPrice"
   return 1
  def SetMass(self,mass):
   print "SetMass"
  def GetMass(self):
   print "GetMass"
   return 1
  def SetVolume(self,volume):
   print "SetVolume"
  def GetVolume(self):
   print "GetVolume"
   return 1
  def SetQuantity(self,quantity):
   print "SetQuantity"
  def GetQuantity(self):
   print "GetQuantity"
   return 1
  def SetContent(self,content):
   print "SetContent"
  def GetContent(self):
   print "GetContent"
   return "weapons"
  def SetCategory(self,category):
   print "SetCategory"
  def GetCategory(self):
   print "GetCategory"
   return "contraband"
  def SetMissionFlag(self,flag):
   print "SetMissionFlag"
  def GetMissionFlag(self):
   print "GetMissionFlag"
   return 0

  def GetCategory(self):
   print "GetCategory"
   return "contraband"
  def GetDescription(self):
   print "GetDescription"
   return ""

class PythonAI:
  def init(self,un):
   print "init"
  def Execute(self):
   print "Execute"
  def GetParent(self):
   print "GetParent"
   return Unit()
  def __init__(self):
    print 'PythonAI constructor called with (self)'
    self.init(Unit())
  def AddReplaceLastOrder(self,replace):
   print "AddReplaceLastOrder"
  def ExecuteLastScriptFor(self,time):
   print "ExecuteLastScriptFor"
  def FaceTarget(self,end):
   print "FaceTarget"
  def FaceTargetITTS(self,end):
   print "FaceTargetITTS"
  def MatchLinearVelocity(self,terminate,vec,afterburn,local):
   print "MatchLinearVelocity"
  def MatchAngularVelocity(self,terminate,vec,local):
   print "MatchAngularVelocity"
  def ChangeHeading(self,vec):
   print "ChangeHeading"
  def ChangeLocalDirection(self,vec):
   print "ChangeLocalDirection"
  def MoveTo(self,Targ,afterburn):
   print "MoveTo"
  def MatchVelocity(self,terminate,vec,angvel,afterburn,local):
   print "MatchVelocity"
  def Cloak(self,enable,seconds):
   print "Cloak"
  def FormUp(self,pos):
   print "FormUp"
  def FaceDirection(self,distToMatchFacing,finish):
   print "FaceDirection"
  def XMLScript(self,script):
   print "XMLScript"
  def LastPythonScript(self):
   print "LastPythonScript"