15 #include <luabind/luabind.hpp>
24 #include <boost/signals2.hpp>
26 namespace makVrfEvents
29 class DtInfluenceEvent;
52 #ifdef DtObjectDebugger_Enable
67 virtual void init()
override;
86 virtual void setLuaState(lua_State* L);
87 virtual lua_State* getLuaState();
89 virtual std::string dumpLuaStack()
const;
90 virtual int luaStackSize()
const;
91 virtual void collectGarbage();
118 virtual bool initializeVRFLuaExtensions(lua_State* L);
119 virtual bool importTaskParams(lua_State* L);
122 virtual bool importSetParams(lua_State* L);
125 virtual luabind::object createLuaTableFromRegistry(lua_State* L,
const DtReaderWriterRegistry& rwRegistry,
bool requireMetadata =
true,
bool hasParamMetaData =
true);
131 static void addKeyToIgnore(
const std::string&);
134 static void removeKeyToIgnore(
const std::string&);
137 void luaEndTask(
bool success);
146 virtual void luaStopScenarioEventWithRewind(
DtScriptVrfObject eventName,
bool rewind);
154 virtual int luaSendEmbeddedEntityTask(std::string eeName, std::string taskName, luabind::object
const& parms);
156 virtual int luaSendEmbeddedEntityTaskActAsSubtask(std::string eeName, std::string taskName,
157 luabind::object
const& parms,
bool actAsSubtask);
159 virtual int luaSendEmbeddedEntitySet(std::string eeName, std::string setName, luabind::object
const& parms);
164 int luaStartSubtask(
const std::string taskName, luabind::object
const& parameters);
166 void luaStopSubtask(
int subtaskId);
168 void luaStopAllSubtasks();
170 bool luaIsSubtaskRunning(
int subtaskId);
172 bool luaIsSubtaskComplete(
int subtaskId);
174 bool luaIsSubtaskCanceled(
int subtaskId);
176 bool luaSubtaskResult(
int subtaskId);
180 void luaCleanupInactiveSubtaskStatus();
184 void luaSendReportWithoutRecipients(const::std::string reportType,
185 luabind::object
const& parameters);
186 void luaSendReport(const::std::string reportType,
187 luabind::object
const& reciptients,
188 luabind::object
const& parameters);
192 luabind::object
const& parameters);
193 int luaSendTaskNotAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
194 luabind::object
const& parameters);
195 int luaSendTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
196 luabind::object
const& parameters,
bool actAsSubtask);
198 luabind::object
const& parameters);
199 int luaSendRadioTaskActAsSubtask(
DtScriptVrfObject&
object, const::std::string taskName,
200 luabind::object
const& parameters,
bool actAsSubtask);
201 int luaSendTaskActAsSubtaskWithRadio(
DtScriptVrfObject&
object, const::std::string taskName,
202 luabind::object
const& parameters,
bool actAsSubtask,
bool sendWithRadio);
205 void luaStopAllTasks();
208 void luaSendSetDataToSelf(const::std::string setName,
209 luabind::object
const& parameters);
213 luabind::object
const& parameters);
215 luabind::object
const& parameters);
217 luabind::object
const& parameters,
bool useRadio);
219 bool luaIsTaskAvailable(const::std::string taskName);
220 bool luaIsSetAvailable(const::std::string setName);
223 luabind::object luaGetReactionStatus();
233 luabind::object luaGetOrbatList();
236 std::string luaGetScriptId();
239 std::string luaGetSystemName();
242 luabind::object luaGetObjectsNearWithFilter(
const DtLocation3D& loc,
double distance, luabind::object
const& parameters);
244 luabind::object luaGetScriptAttribute(
const std::string& attributeName,
bool&
error);
247 luabind::object luaGetVrfObjects();
251 luabind::object luaGetDesignatorsNearWithFilter(
const DtLocation3D& loc,
double distance,
252 const luabind::object& params);
254 luabind::object luaGetDesignatorsNear(
const DtLocation3D& loc,
double distance);
259 DtLuaFeatureSet luaGetFeaturesWithinArea(luabind::object
const& points, luabind::object
const& attributes);
262 DtLuaFeatureSet luaGetFeaturesWithinAreaNoAttributes(luabind::object
const& points);
287 boost::shared_ptr<DtLuaAsyncJob> generateRandomPoints(
const luabind::object& parameters);
290 boost::shared_ptr<DtLuaAsyncJob> findNearbyPointOfInterest(
const int type);
293 boost::shared_ptr<DtLuaAsyncJob> findCoverPoint(
295 double threatRadius,
double distanceFromThreat,
double range,
unsigned numberOfPoints);
298 luabind::object findLadders(lua_State* L,
const DtLocation3D& startLocation,
double range);
300 luabind::object findLaddersWithId(lua_State* L,
const DtLocation3D& startLocation,
301 double range,
const unsigned int id);
304 boost::shared_ptr<DtLuaAsyncJob> findPathToLocation(
306 bool useAbstractGraphs,
const DtLocation3D& avoidLocation,
double avoidanceRadius);
313 boost::shared_ptr<DtLuaAsyncJob> luaNavigateThroughFeatures(
const luabind::object& parameters);
317 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindHighPoints(
const luabind::object& corners,
unsigned int nPoints);
318 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindHighPointsDebug(
const luabind::object& corners,
unsigned int nPoints,
bool bDebug);
335 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindSinglePosition(
336 const luabind::object& targetAreaCorners,
338 double targetHeightMeters,
339 double viewHeightMeters,
340 double hideHeightMeters,
341 double forwardBackSearchLimitMeters,
342 double forwardBackSearchIntervalMeters,
343 double maxSlopeDegrees);
358 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindSinglePositionDebug(
359 const luabind::object& targetAreaCorners,
361 double targetHeightMeters,
362 double viewHeightMeters,
363 double hideHeightMeters,
364 double forwardBackSearchLimitMeters,
365 double forwardBackSearchIntervalMeters,
366 double maxSlopeDegrees,
383 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindVehicleFightingPositions(
384 unsigned int nPositionPairs,
385 const luabind::object& targetAreaCorners,
390 double forwardBackSearchLimit,
391 double sideSideSearchLimit,
392 double maxSlopeDegrees,
393 double positionSpacing);
396 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindVehicleFightingPositionsDebug(
397 unsigned int nPositionPairs,
398 const luabind::object& targetAreaCorners,
403 double forwardBackSearchLimit,
404 double sideSideSearchLimit,
405 double maxSlopeDegrees,
406 double positionSpacing,
409 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindPositionGroupsInAreaHilltop(
410 unsigned int nPositionPairsPerGroup,
411 const luabind::object& searchAreaVertices,
412 const luabind::object& targetsAreaVertices,
413 double viewHeightMeters,
414 double coverHeightMeters,
415 unsigned int forwardBackRangeMeters,
416 unsigned int sideSideRangeMeters,
417 unsigned int searchIntervalMeters,
418 double maxSlopeDegrees,
419 unsigned int positionsLateralSpacingMeters);
421 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindPositionGroupsInAreaHilltopDebug(
422 unsigned int nPositionPairsPerGroup,
423 const luabind::object& searchAreaVertices,
424 const luabind::object& targetsAreaVertices,
425 double viewHeightMeters,
426 double coverHeightMeters,
427 unsigned int forwardBackRangeMeters,
428 unsigned int sideSideRangeMeters,
429 unsigned int searchIntervalMeters,
430 double maxSlopeDegrees,
431 unsigned int positionsLateralSpacingMeters,
434 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindPositionGroupsInAreaRidge(
435 unsigned int nPositionPairsPerGroup,
436 const luabind::object& searchAreaVertices,
437 const luabind::object& targetsAreaVertices,
438 unsigned int targetsAreaSampleRate,
439 const luabind::object& tableOfDoubles
442 virtual boost::shared_ptr<DtLuaAsyncJob> luaFindPositionGroupsInAreaRidgeDebug(
443 unsigned int nPositionPairsPerGroup,
444 const luabind::object& searchAreaVertices,
445 const luabind::object& targetsAreaVertices,
446 unsigned int targetsAreaSampleRate,
447 const luabind::object& tableOfDoubles
452 boost::shared_ptr<DtLuaAsyncJob> getAllEmbarkationSlots(
DtScriptVrfObject&
object);
459 boost::shared_ptr<DtLuaAsyncJob> getEmbarkationSlotsFiltered(
DtScriptVrfObject&
object,
463 boost::shared_ptr<DtLuaAsyncJob> reserveEmbarkationSlot(
DtScriptVrfObject&
object,
int slotNumber);
466 boost::shared_ptr<DtLuaAsyncJob> getEmbarkationEgressPoints(
DtScriptVrfObject&
object);
468 void luaSendMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
469 void luaSendRadioMessage(
const DtScriptVrfObject& receiver,
const std::string& message);
470 void luaSendRadioMessageToUuid(
const std::string& uuid,
const std::string& message);
471 void luaDeleteObject(std::string
const& receiver);
473 void luaSetInterest(
const DtLocation3D& location,
double range);
475 void luaSendObjectMessage(
const DtScriptVrfObject& receiver,
const std::string& messageType,
const luabind::object& messageContents);
476 void luaSendRadioObjectMessage(
const DtScriptVrfObject& receiver,
const std::string& messageType,
const luabind::object& messageContents);
477 void luaRegisterForObjectMessage(
const std::string& messageType);
478 void luaUnregisterForObjectMessage(
const std::string& messageType);
486 const std::string& influenceName, luabind::object
const& influenceParams);
491 static void influenceEventCallback(DtBoost::shared_ptr<const makVrfEvents::DtInfluenceEvent> event,
void* usr);
492 virtual void queueInfluence(DtBoost::shared_ptr<const makVrfEvents::DtInfluenceEvent> e);
493 virtual void processInfluence(DtBoost::shared_ptr<const makVrfEvents::DtInfluenceEvent> e);
499 luabind::object luaGetCloudLayerDescriptionsAt(lua_State *L,
const DtLocation3D& location);
507 virtual double luaGetExpectedIllumination(
DtScriptVrfObject&
object,
double dateAndTimeOfDay);
508 virtual double luaGetSnowAccumulationByLocation(
const DtLocation3D&
object);
509 virtual double luaGetSnowRoadAccumulationByLocation(
const DtLocation3D&
object);
510 virtual double luaGetRainAccumulationByLocation(
const DtLocation3D&
object);
512 virtual double luaGetAirTemperatureByLocation(
const DtLocation3D&
object);
513 virtual double luaGetAirPressureByLocation(
const DtLocation3D&
object);
514 virtual unsigned int luaGetPrecipitationByLocation(
const DtLocation3D& location,
double*);
515 virtual double luaGetPrecipitationIntensityByLocation(
const DtLocation3D&
object);
516 virtual unsigned int luaGetPrecipitationTypeByLocation(
const DtLocation3D&
object);
517 virtual double luaGetVisibilityDistanceByLocation(
const DtLocation3D&
object);
518 virtual int luaGetVisibilityObscurantByLocation(
const DtLocation3D&
object);
519 virtual double luaGetWindDirectionByLocation(
const DtLocation3D&
object);
520 virtual double luaGetWindSpeedByLocation(
const DtLocation3D&
object);
521 virtual double luaGetUnderwaterVisibilityByLocation(
const DtLocation3D&
object);
522 virtual unsigned int luaGetSwellStateByLocation(
const DtLocation3D&
object);
523 virtual double luaGetSwellStateDirectionByLocation(
const DtLocation3D&
object);
524 virtual unsigned int luaGetSeaStateByLocation(
const DtLocation3D&
object);
525 virtual double luaGetSeaStateDirectionByLocation(
const DtLocation3D&
object);
526 virtual double luaGetSurgeDepthByLocation(
const DtLocation3D&
object);
527 virtual double luaGetIlluminationByLocation(
const DtLocation3D&
object);
528 virtual double luaGetExpectedIlluminationByLocation(
const DtLocation3D&
object,
double dateAndTimeOfDay);
533 virtual double luaRunDurationTime();
534 virtual void luaRunForDuration(
double);
535 virtual void luaStopSimulationDurationTimer();
540 virtual void luaSetCheckpointMode(
bool);
541 virtual void initializeCheckpointStateTable(lua_State* L);
552 luabind::object
const& options,
int displayFlags);
554 luabind::object
const& options,
int displayFlags);
556 luabind::object
const& options,
int displayFlags);
557 virtual int luaAskUserQuestionSS(
const std::string& title,
const std::string& message,
558 luabind::object
const& options,
int displayFlags);
563 virtual int luaStatusOfUserQuestion(
int questionId);
566 virtual void luaCancelUserQuestion(
int questionId);
574 void luaCreateEntityParallel(luabind::object
const& parameters);
604 std::vector<DtLocation3D> luaMakeOffsetPoints(
605 luabind::object
const& fromPoints,
607 std::vector<DtLocation3D> luaMakeOffsetPointsWithRadius(luabind::object
const& fromPoints,
611 void luaCreateSelectionGroup(
const std::string& name, luabind::object
const& parameters);
616 void luaFinishTest(
const int status,
const std::string message);
619 bool luaUpdateTaskVisualization(
const std::string& visualizationName,
620 const std::string& visualizationType, luabind::object
const& parameters);
623 void luaDeleteTaskVisualization(
const std::string& visualizationName);
626 void luaRequire(lua_State* L,
const std::string&
filename);
630 unsigned luaBitwiseOr(
unsigned val1,
unsigned val2);
631 unsigned luaBitwiseAnd(
unsigned val1,
unsigned val2);
632 unsigned luaBitwiseXor(
unsigned val1,
unsigned val2);
633 unsigned luaBitwiseNot(
unsigned val);
634 unsigned luaBitwiseLeftShift(
unsigned val,
unsigned shift);
635 unsigned luaBitwiseRightShift(
unsigned val,
unsigned shift);
650 , myFunctionName(functionName)
662 return myFunctionName;
675 DtInfo <<
"DtLuaScriptFunctionReference::operator< attempt to compare with wrong type.\n";
687 const std::string& functionName);
691 const std::string& functionName);
704 virtual luabind::object luaGetParamPropertyFromType(
705 const std::string typeString, std::string
const& paramName);
708 virtual void putObjectsFromTableIntoGlobalTable(lua_State* state, luabind::object& table);
709 virtual void putObjectsFromGlobalTableIntoTable(lua_State* state, luabind::object& table);
712 virtual luabind::object luaGetSubordinateFunctionNames();
715 virtual luabind::object luaGetParameterSubordinateFunctionsFromType(
716 const std::string typeString);
718 virtual void connectForCallbacks();
719 virtual void processEvents();
722 boost::shared_ptr<DtLuaAsyncJob> luaGetWeaponSystemsInfo(
DtScriptVrfObject&
object);
728 virtual bool callLuaNoArgFunction(
const std::string& functionName,
bool* functionExists =
nullptr);
730 virtual void updateFuncCallCount();
741 LuaExtension() : creator(nullptr), onlyForEntity(nullptr), usr(nullptr) {};
763 bool myNeedsInvokeShutdown =
true;
775 namespace luaScriptInterface
809 const std::string& formationName, luabind::object
const& options,
815 const std::string& formationName,
850 luabind::object
const& typeFilters,
bool observedOnly);
855 luabind::object
const& typeFilters,
bool observedOnly,
862 luabind::object
const& typeFilters,
bool observedOnly,
871 luabind::object
const& typeFilters,
872 luabind::object
const& flags);
882 const std::string& weaponId,
const DtLocation3D& location);
886 const std::string& weaponId,
const std::string& targetType);
889 const std::string& weaponId, luabind::object
const& locationRef);
894 const std::string& propertyName, luabind::object
const& prop);
900 const std::string& propertyName, luabind::object
const& prop,
bool addIfNotFound);
910 luabind::object
const& keyValues, luabind::object
const& itemValue);
919 int index, luabind::object
const& itemValue);
929 luabind::object
const& keyValue, luabind::object
const& itemValue);
950 luabind::object
const& keyValues,
int& index);
953 luabind::object
const& keyValues,
int& index);
978 luabind::object
const& keyValue);
981 luabind::object
const& keyValue);
1002 luabind::object
const& keyValues,
int& index);
1005 luabind::object
const& keyValues,
int& index);
1030 luabind::object
const& keyValue);
1033 luabind::object
const& keyValue);
1037 const luabind::object & value,
virtual void invokePostSetDataCallback(DtScriptFunctionReferencePtr functionReference, DtSetDataRequestMessage *setDatRequest)=0
Implement to invoke the function referenced by functionReference. setDatRequest contains the informat...
virtual void processEntityDestroyed()
Can be overridden to perform some processing when the entity is destroyed.
Definition: scriptInterface.h:200
std::vector< DtVrfObjectMessage * > myTextReportCallbacks
Definition: luaScriptInterfaceImpl.h:760
virtual bool operator<(const DtScriptFunctionReference &other) const override
Required for std::set.
Definition: luaScriptInterfaceImpl.h:665
virtual void addPostSetDataCallback(const DtSetMessageType &setDataType, DtScriptFunctionReferencePtr functionReference)
Adds a callback to be invoked after the specified type of set data request is executed.
virtual bool invokeInit()=0
luabind::object luaGetParameterPropertyListItemByIndex(lua_State *L, const DtScriptVrfObject &entity, const std::string &propertyName, int index)
Returns an object containing the value of the of an item in the given parameter property. The property must be a list. Returns the item at the given index, using the Lua convention that the first item is at index 1. The result may be a table containing a number of fields that make up the item, or a single value, depending on the data type of the list items. If the property or list item could not be found, the returned table will be empty.
std::list< DtScriptVrfObject > luaGetContactsWithFilterAliveOnly(lua_State *L, const DtScriptOwnshipObject &entity, luabind::object const &typeFilters, bool observedOnly, bool aliveOnly)
Same as luaGetContactsWithFiler but adds a boolean flag to indicate that only non-destroyed entities ...
This class is a wrapper for a DtCompSystem for use by scripts. It derives from DtAsciiSerializable so...
Definition: scriptWeaponInfo.h:22
luabind::object luaGetParamProperty(lua_State *L, const DtScriptVrfObject &entity, std::string const ¶mName)
Returns an object containing the value of the requested parameter property. May be a table containing...
const char ContactObservedOnly[]
Definition: luaScriptInterfaceImpl.h:42
luabind::object luaGetSubordinateFunctions(lua_State *L, const DtScriptVrfObject &entity)
Return a table of {{"subordinate" = DtScriptVrfObject, "function" = string}}.
static GlobalInterfaceExtensions theLuaInterfaceExtensions
Definition: luaScriptInterfaceImpl.h:752
std::vector< LuaExtension > GlobalInterfaceExtensions
Definition: luaScriptInterfaceImpl.h:750
lua_State * myLState
Definition: luaScriptInterfaceImpl.h:732
virtual bool invokeResume()=0
luabind::object luaGetStateOwnshipPropertyListItemByIndex(lua_State *L, const DtScriptOwnshipObject &entity, const std::string &propertyName, int index)
virtual bool loadState(const DtReaderWriter *savedState)=0
Called when the scenario is loaded. The load state pointer may not be valid, which does not indicate ...
bool luaSetSubordinateFunctions(lua_State *L, const DtScriptVrfObject &entity, luabind::object const &subsAndFunctions)
Given a table of {{"subordinate" = DtScriptVrfObject, "function" = string}} Set the state propert...
luabind::object luaGetStateOwnshipPropertyMapItem(lua_State *L, const DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &keyValue)
unsigned myFuncCallCount
Definition: luaScriptInterfaceImpl.h:733
luabind::object luaGetSubordinateFormation(lua_State *L, const DtScriptOwnshipObject &entity, DtScriptVrfObject &leadSubordinate)
Gets a table indexed by simObject (subordinates) of position offset relative to the formation leader...
virtual void invokeCheckInit()=0
luabind::object luaGetParameterPropertyListItem(lua_State *L, const DtScriptVrfObject &entity, const std::string &propertyName, luabind::object const &keyValues, int &index)
Returns an object containing the value of the of an item in the given parameter property. The property must be a list. The item returned will have values matching the specified key values in the key fields. The result may be a table containing a number of fields that make up the item, or a single value, depending on the data type of the list items. If the property or list item could not be found, the returned table will be empty. Sets index to be the index of the item, using the Lua convention that the first item is at index 1.
Definition: readerWriter.h:85
#define DT_DEFINE_OBJECT_DEBUGGER_NAME(type)
Definition: objectCounter.h:31
Default on in debug, off in release.
Definition: objectCounter.h:27
luabind::object(* ReaderWriterToLuaTableFcn)(lua_State *LS, const DtReaderWriter *rwString, const DtSimulationServices *mgr, const DtString ¶meterType)
When adding decoder functions to turn reader/writer into lua tables, the format must be of the follow...
Definition: luaScriptInterfaceImpl.h:39
bool luaSetStatePropertyListItemByIndex(lua_State *L, DtScriptOwnshipObject &entity, const std::string &propertyName, int index, luabind::object const &itemValue)
Finds the item in the list at the specified index and updates it to the new value. If the list is not long enough, new entries are added. Any items added in this way will be given the same value as the new entry. If the property does not exist or the format of the data is incorrect, returns false.
virtual void removePostSetDataCallback(const DtSetMessageType &setDataType, DtScriptFunctionReferencePtr functionReference)
Remove a callback invoked after the specified type of set data request is executed.
Definition: readerWriterRegistry.h:39
virtual DtReaderWriter * saveState()=0
Called when the scenario is saved. The stateState pointer may not be valid, in which case something w...
luabind::object luaGetStatePropertyListItemByIndex(lua_State *L, const DtScriptVrfObject &entity, const std::string &propertyName, int index)
Returns an object containing the value of the of an item in the given state property. The state property must be a list. Returns the item at the given index, using the Lua convention that the first item is at index 1. The result may be a table containing a number of fields that make up the item, or a single value, depending on the data type of the list items. If the property or list item could not be found, the returned table will be empty.
LocalInterfaceExtensions myInterfaceExtensions
Definition: luaScriptInterfaceImpl.h:737
virtual bool loadScript(bool reload=false)=0
This will be called by the parent to let the interface know when to load the script.
bool myLuaScriptWarningShown
Definition: luaScriptInterfaceImpl.h:734
static ReaderWriterToLuaTableMap theReaderWriterToLuaTableMap
Definition: luaScriptInterfaceImpl.h:757
luabind::object luaGetParameterSubordinateFunctions(lua_State *L, const DtScriptVrfObject &entity)
Gets a table of entity type and subordinate function handle pairs {{ENTITY_TYPE_STRING, FUNCTION_HANDLE_STRING}}.
luabind::object luaGetWeaponInfo(lua_State *L, const DtScriptOwnshipObject &thisEntity, const std::string &weaponId)
luabind::object luaGetWeaponFireTask(lua_State *L, const DtScriptOwnshipObject &thisEntity, const std::string &weaponId, luabind::object const &locationRef)
std::list< DtScriptVrfObject > luaGetContactsWithFilter(lua_State *L, const DtScriptOwnshipObject &entity, luabind::object const &typeFilters, bool observedOnly)
This function supports the script API. It gets the list of contacts matching the given filter and ret...
std::string functionName() const
Definition: luaScriptInterfaceImpl.h:660
DtLuaScriptFunctionReference(const std::string &functionName)
Definition: luaScriptInterfaceImpl.h:648
luabind::object luaGetStatePropertyMapItem(lua_State *L, const DtScriptVrfObject &entity, const std::string &propertyName, luabind::object const &keyValue)
Returns an object containing the value of the of an item in the given state property. The state property must be a map. The item returned will have values matching the specified key value. The result may be a table containing a number of fields that make up the item, or a single value, depending on the data type of the list items. If the property or map item could not be found, the returned table will be empty.
VectorOffset3D is a direction vector that is relative to some direction specified by a Vector3D...
Definition: scriptGeometry.h:424
Handles translation of messages from C++ structures into Lua tables and the reverse translation as we...
Definition: luaMessageInterface.h:23
luabind::object luaGetOwnshipParamProperty(lua_State *L, const DtScriptOwnshipObject &entity, std::string const ¶mName)
std::string luaGetSubordinateFunction(lua_State *L, const DtScriptVrfObject &entity, const DtScriptVrfObject &subEntity)
Return a string representing subordinate function for indicated subordinate.
LuaExtension(const LuaExtension &orig)
Definition: luaScriptInterfaceImpl.h:742
bool luaSetStatePropertyMapItem(lua_State *L, DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &keyValue, luabind::object const &itemValue)
Sets a single item in a map state property to the given value. First looks in the map to see if any e...
virtual DtString type() const =0
Script engine type.
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
Represents a feature geometry.
Definition: luaFeatureGeometry.h:25
luabind::object luaGetStateOwnshipPropertyListItem(lua_State *L, const DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &keyValues, int &index)
static const std::map< DtString, rwToLuaBindObjectFcn > & rwToLuaBindObjectMap()
const DtLocalObject * onlyForEntity
Definition: luaScriptInterfaceImpl.h:746
Definition: luaScriptInterfaceImpl.h:50
luabind::object luaGetOwnshipParameterPropertyListItem(lua_State *L, const DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &keyValues, int &index)
bool luaSetStateProperty(lua_State *L, DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &prop)
Sets the specified state property with the given value. If the property does not exist or the format ...
luabind::object luaGetSystemAttribute(const DtScriptComponentSystem &system, const std::string &attributeName, bool *error, lua_State *L)
luabind::object(* rwToLuaBindObjectFcn)(const DtReaderWriter *rw, lua_State *L)
Definition: luaScriptInterfaceImpl.h:777
virtual void invokeDisable()=0
Only called for reactive tasks which can be enabled but not active. When the task is completely disab...
std::vector< DtBoost::shared_ptr< const makVrfEvents::DtInfluenceEvent > > myInfluenceEvents
Definition: luaScriptInterfaceImpl.h:761
virtual void invokeTick()=0
This will be called by the parent to invoke the script tick.
std::list< DtVectorOffset3D > luaGetFormationPositions(lua_State *L, const DtScriptVrfObject &unit, const std::string &formationName, int *leaderIndex)
Calls luaGetOptionFormationPositions with empty options.
#define DT_DLL_vrfLua
This file is used to determine how to build.
Definition: vrfLuaDefines.h:25
bool luaSetStatePropertyListItem(lua_State *L, DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &keyValues, luabind::object const &itemValue)
Sets a single item in a list state property to the given value. First looks in the list to see if any...
std::string luaWeaponTargetApplicability(lua_State *L, const DtScriptOwnshipObject &thisEntity, const std::string &weaponId, const std::string &targetType)
lua "weaponTargetApplicability()"
const char ContactAliveOnly[]
Definition: luaScriptInterfaceImpl.h:43
boost::shared_ptr< DtScriptFunctionReference > DtScriptFunctionReferencePtr
Shared ptr to DtScriptFunctionReference.
Definition: scriptInterface.h:54
luabind::object luaGetStatePropertyListItem(lua_State *L, const DtScriptVrfObject &entity, const std::string &propertyName, luabind::object const &keyValues, int &index)
Returns an object containing the value of the of an item in the given state property. The state property must be a list. The item returned will have values matching the specified key values in the key fields. The result may be a table containing a number of fields that make up the item, or a single value, depending on the data type of the list items. If the property or list item could not be found, the returned table will be empty. Sets index to be the index of the item, using the Lua convention that the first item is at index 1.
This stream is used by the scripting classes to be able to send out translatable messages from script...
Definition: translatableStream.h:22
luabind::object luaGetContactInfo(lua_State *L, const DtScriptOwnshipObject &thisEntity, const DtScriptVrfObject &otherEntity)
Gets the perceived contact info that this entity has for another entity.
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
Override of DtScriptInterface::DtScriptFunctionReference that holds a function reference by function ...
Definition: luaScriptInterfaceImpl.h:645
std::vector< DtLuaScriptInterfaceExtension * > LocalInterfaceExtensions
Definition: luaScriptInterfaceImpl.h:736
Abstract object used to hold a reference to a function defined in the script language, to be used later to invoke that function. Used for registering callbacks to be invoked after specified types of set data requests are executed. For this functionality to be used in a derived script interface implementation, a derived class must be implemented to represent a reference to a function in the script language.
Definition: scriptInterface.h:43
luabind::object luaGetEntityParam(lua_State *L, const DtScriptVrfObject &entity, std::string const ¶mName)
luabind::object luaGetStateProperty(lua_State *L, const DtScriptVrfObject &entity, const std::string &propertyName)
Returns an object containing the value of the requested state property. May be a table containing a n...
virtual void processClearForReuse()
This function should be overridden by the inheritor to clear out any task specific variables...
Definition: asyncJobServer.h:39
bool luaSetSubordinateFunction(lua_State *L, const DtScriptVrfObject &entity, const DtScriptVrfObject &subEntity, const std::string &subFunction)
Given a table of {{"subordinate" = DtScriptVrfObject, "function" = string}} Set the state propert...
Contains the DtTranslatableStream class declaration.
const char ContactCurrentlyDetectedOnly[]
Definition: luaScriptInterfaceImpl.h:45
DtLuaScriptInterfaceExtension *(* CreatorFcn)(void *usr)
Prototype for DtLuaScriptInterfaceExtension creator function.
Definition: luaScriptInterfaceExtension.h:37
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
luabind::object luaGetOwnshipParameterPropertyMapItem(lua_State *L, const DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &keyValue)
DtScriptInterface & operator=(const DtScriptInterface &other)
virtual bool invokeCheck()=0
The DtLuaFeatureSet class is a wrapper around a DtFeatureSet that will provide feature information fo...
Definition: luaFeatureSet.h:28
LuaExtension()
Definition: luaScriptInterfaceImpl.h:741
std::map< DtString, ReaderWriterToLuaTableFcn > ReaderWriterToLuaTableMap
Definition: luaScriptInterfaceImpl.h:756
DtLuaScriptInterfaceExtension.
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
luabind::object myCheckpointStateTable
Definition: luaScriptInterfaceImpl.h:754
bool luaSetSystemAttribute(DtScriptComponentSystem &system, const std::string &attributeName, const luabind::object &value, lua_State *L)
Contains Extended DI-Guy Object net types.
luabind::object luaGetTargetPriorityList(lua_State *L, const DtScriptOwnshipObject &thisEntity)
Gets the target priority list that this entity has.
void * usr
Definition: luaScriptInterfaceImpl.h:747
const char ContactHostileOnly[]
Definition: luaScriptInterfaceImpl.h:44
Definition: luaScriptInterfaceImpl.h:739
The "this" version is the own-ship object. It is separated to allow special functions for the ownshi...
Definition: scriptVrfObject.h:402
DtLuaMessageInterface * myMessageInterface
Definition: luaScriptInterfaceImpl.h:758
std::list< DtVectorOffset3D > luaGetOptionFormationPositions(lua_State *L, const DtScriptVrfObject &unit, const std::string &formationName, luabind::object const &options, int *leaderIndex)
Gets a list of offset vectors defining the positions in the formation. Returns the index of the leade...
luabind::object luaGetWeaponInfoList(lua_State *L, const DtScriptOwnshipObject &thisEntity)
Lua "getWeaponInfo()" Returns a list of the weapon info for weapons on this entity.
This class is a wrapper for a DtCompSystem for use by scripts. It derives from DtAsciiSerializable so...
Definition: scriptComponentSystem.h:18
This class is a two-way interface between the script language and its parent controller. There are functions that either the parent controller will call on the script interface (such as tick() ) and there will be functions the script interface will call on the parent controller to inform the parent of status updates and for data access.
Definition: scriptInterface.h:32
std::string myFunctionName
Definition: luaScriptInterfaceImpl.h:681
bool luaWeaponCanTargetLocation(lua_State *L, const DtScriptOwnshipObject &thisEntity, const std::string &weaponId, const DtLocation3D &location)
lua "weaponCanTargetLocation()"
luabind::object luaGetOwnshipParameterPropertyListItemByIndex(lua_State *L, const DtScriptOwnshipObject &entity, const std::string &propertyName, int index)
virtual void invokeSuspend()=0
voidpf uLong offset
Definition: ioapi.h:42
A DtSetDataRequestMessage is a DtRadioMsg with a pointer to a setDataRequest. The type of the DtSetDa...
Definition: setDataRequestMessage.h:29
luabind::object luaGetStateOwnshipProperty(lua_State *L, const DtScriptOwnshipObject &entity, const std::string &propertyName)
bool luaSetOrAddStateProperty(lua_State *L, DtScriptOwnshipObject &entity, const std::string &propertyName, luabind::object const &prop, bool addIfNotFound)
Sets the specified state property with the given value. If not found and addIfNotFound is true...
std::list< DtScriptVrfObject > luaGetContacts(lua_State *L, const DtScriptOwnshipObject &entity, luabind::object const &typeFilters, luabind::object const &flags)
Lua "getContacts()" Return a list of contacts matching the given table of entity type filters...
luabind::object luaGetParameterPropertyMapItem(lua_State *L, const DtScriptVrfObject &entity, const std::string &propertyName, luabind::object const &keyValue)
Returns an object containing the value of the of an item in the given parameter property. The property must be a map. The item returned will have values matching the specified key value. The result may be a table containing a number of fields that make up the item, or a single value, depending on the data type of the list items. If the property or map item could not be found, the returned table will be empty.
std::list< DtScriptVrfObject > luaGetHostileContactsWithFilterAliveOnly(lua_State *L, const DtScriptOwnshipObject &entity, luabind::object const &typeFilters, bool observedOnly, bool aliveOnly)
This function is the same as luaGetContactsWithFilterAliveOnly, but it returns only hostile contacts...
virtual void invokeShutdown()=0
virtual void invokeUpdateDisplayGraph()=0
Called when graphs are enabled to get an immediate graph output.
virtual ~DtLuaScriptFunctionReference()
Definition: luaScriptInterfaceImpl.h:655
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
Definition: scriptVrfObject.h:30
A location3D is a point in space, i.e. a geocentric coordinate.
Definition: scriptGeometry.h:22