protected virtual void OnHealthStateChanged(EntityHealthStateChangeEventArgs e) { if (HealthStateChanged != null) { HealthStateChanged(this, e); } }
//Handle Entity HealthState change private void EntityHealthStateChanged(object sender, EntityHealthStateChangeEventArgs e) { //Check if the entity entered the Dead state switch (e.NewState) { case DynamicEntityHealthState.Normal: if (e.PreviousState == DynamicEntityHealthState.Dead) { //Force a refresh of voxel body UpdateEntityVoxelBody(e.DynamicEntity.DynamicId, null); } break; case DynamicEntityHealthState.Drowning: break; case DynamicEntityHealthState.Dead: //Force a refresh of voxel body UpdateEntityVoxelBody(e.DynamicEntity.DynamicId, null); //Play dead sound only if player not active player if (!IsLocalPlayer(e.DynamicEntity.DynamicId)) { _soundEngine.StartPlay3D("Dying", 1.0f, e.DynamicEntity.Position.AsVector3()); } break; default: break; } }
private void _playerEntity_HealthStateChanged(object sender, EntityHealthStateChangeEventArgs e) { _server.ServerConnection.Send(new EntityHealthStateMessage { EntityId = e.DynamicEntity.DynamicId, HealthState = e.NewState }); }