//============================================================================= // KFBulletSkeletalMeshComponent //============================================================================= // Used to set bullets visible and invisible based on their fired and reload // state //============================================================================= // Killing Floor 2 // Copyright (C) 2018 Tripwire Interactive LLC // Based on KFSkeletalMeshComponent // - Zane Gholson //============================================================================= class KFBulletSkeletalMeshComponent extends KFSkeletalMeshComponent; var SkeletalMesh UnusedBulletMeshTemplate; var SkeletalMesh UsedBulletMeshTemplate; enum BulletState { BS_Unused, BS_Used, BS_Unloaded, }; var private BulletState _CurrentBulletState; simulated function SetBulletState(BulletState NewBulletState) { if(_CurrentBulletState == NewBulletState) { return; } _CurrentBulletState = NewBulletState; Switch(NewBulletState) { case BS_Unused: SetSkeletalMesh(UnusedBulletMeshTemplate); SetHidden(False); //with payload / unused break; case BS_Used: SetHidden(False); SetSkeletalMesh(UsedBulletMeshTemplate); //no payload / used break; case BS_Unloaded: SetHidden(true); //invisible - "I THREW IT ON THE GROUND!" break; } } simulated function BulletState GetBulletShellState() { return _CurrentBulletState; }