Show / Hide Table of Contents

Interface IMyProjectiles

Interface for controlling projectile behavior (mods interface)

Namespace: Sandbox.ModAPI
Assembly: Sandbox.Common.dll
Syntax
public interface IMyProjectiles

Methods

Add(MyDefinitionBase, MyDefinitionBase, Vector3D, Vector3, Vector3, MyEntity, MyEntity, MyEntity, MyEntity[], Boolean, UInt64)

Adds new projectile

Declaration
void Add(MyDefinitionBase weaponDefinition, MyDefinitionBase ammoDefinition, Vector3D origin, Vector3 initialVelocity, Vector3 directionNormalized, MyEntity owningEntity, MyEntity owningEntityAbsolute, MyEntity weapon, MyEntity[] ignoredEntities, bool supressHitIndicator = false, ulong owningPlayer = 0UL)
Parameters
Type Name Description
MyDefinitionBase weaponDefinition

Definition of weapon. Should be MyWeaponDefinition

MyDefinitionBase ammoDefinition

Definition of ammo. Should be MyAmmoDefinition

Vector3D origin

Spawn position

Vector3 initialVelocity

Speed of object that fired projectile

Vector3 directionNormalized

Direction of bullet

MyEntity owningEntity

Rifle, block, ...

MyEntity owningEntityAbsolute

Character, main ship cockpit. Used only to record damage statistics in single player

MyEntity weapon

Shooter entity (rifle, block)

MyEntity[] ignoredEntities
System.Boolean supressHitIndicator

When true, hit indicator won't show

System.UInt64 owningPlayer

Player that owns this projectile. Adds hit indication for that player on hit, and using that id in safezone access checks

add_OnProjectileAdded(OnProjectileAddedRemoved)

Declaration
void add_OnProjectileAdded(OnProjectileAddedRemoved value)
Parameters
Type Name Description
OnProjectileAddedRemoved value

add_OnProjectileRemoving(OnProjectileAddedRemoved)

Declaration
void add_OnProjectileRemoving(OnProjectileAddedRemoved value)
Parameters
Type Name Description
OnProjectileAddedRemoved value

AddHitDetector(IMyProjectileDetector)

Adds projectile detector. It allows to detect projectiles flying though it, and can cause them hit it Example: Safezone, ship shields

Declaration
void AddHitDetector(IMyProjectileDetector detector)
Parameters
Type Name Description
IMyProjectileDetector detector

Detector logic

AddOnHitInterceptor(Int32, HitInterceptor)

Call function when projectile hits something

Declaration
void AddOnHitInterceptor(int priority, HitInterceptor interceptor)
Parameters
Type Name Description
System.Int32 priority

Calls are ordered by priority. Functions with lower priority are called earlier

HitInterceptor interceptor

Function that should be called on projectile hit

GetAllProjectileCount()

Gets amount of projectiles currently existing

Declaration
int GetAllProjectileCount()
Returns
Type Description
System.Int32

GetProjectile(Int32)

Gets projectile info

Declaration
MyProjectileInfo GetProjectile(int index)
Parameters
Type Name Description
System.Int32 index

index of the info

Returns
Type Description
MyProjectileInfo

GetSurfaceAndMaterial(IMyEntity, ref LineD, ref Vector3D, UInt32, out MySurfaceImpactEnum, out MyStringHash)

Gets information about material and surface, that bullet hitted Arguments should be taken from MyProjectileHitInfo on projectile hit (subscribe on event with AddOnHitInterceptor(Int32, HitInterceptor)).

Declaration
void GetSurfaceAndMaterial(IMyEntity entity, ref LineD line, ref Vector3D hitPosition, uint shapeKey, out MySurfaceImpactEnum surfaceImpact, out MyStringHash materialType)
Parameters
Type Name Description
IMyEntity entity

Entity that was hitted

LineD line

Part of bullet trajectory

Vector3D hitPosition

World position of hit

System.UInt32 shapeKey

Should be taken from HitShapeKey

MySurfaceImpactEnum surfaceImpact

Returns surface, that bullet hitted

MyStringHash materialType

Returns material, that bullet hitted

MarkProjectileForDestroy(Int32)

Marks projectiles for destroy, doesn't decrease projectiles count. Shifting projectiles id, on next frame

Declaration
void MarkProjectileForDestroy(int index)
Parameters
Type Name Description
System.Int32 index

index of projectile

remove_OnProjectileAdded(OnProjectileAddedRemoved)

Declaration
void remove_OnProjectileAdded(OnProjectileAddedRemoved value)
Parameters
Type Name Description
OnProjectileAddedRemoved value

remove_OnProjectileRemoving(OnProjectileAddedRemoved)

Declaration
void remove_OnProjectileRemoving(OnProjectileAddedRemoved value)
Parameters
Type Name Description
OnProjectileAddedRemoved value

RemoveHitDetector(IMyProjectileDetector)

Removes projectile detector

Declaration
void RemoveHitDetector(IMyProjectileDetector detector)
Parameters
Type Name Description
IMyProjectileDetector detector

Detector logic

RemoveOnHitInterceptor(HitInterceptor)

Removed function from call when projectile hits something

Declaration
void RemoveOnHitInterceptor(HitInterceptor interceptor)
Parameters
Type Name Description
HitInterceptor interceptor

Function that should not be called on projectile hit

Events

OnProjectileAdded

Called when new projectile was added

Declaration
event OnProjectileAddedRemoved OnProjectileAdded
Event Type
Type Description
OnProjectileAddedRemoved

OnProjectileRemoving

Called when projectile was removed

Declaration
event OnProjectileAddedRemoved OnProjectileRemoving
Event Type
Type Description
OnProjectileAddedRemoved
☀
☾
In This Article
Back to top
Generated by DocFX
☀
☾