Beispiel #1
0
 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
     });
 }