private void OnTerrainCollision(object sender, EntityTerrainCollisionEventArgs entityTerrainCollisionEventArgs) { if (entityTerrainCollisionEventArgs.Direction.Y < -0.25f && !Abilities.IsFlying) { if (LastCollisionY != -1 && LastCollisionY > Position.Y) { short diff = (short)((LastCollisionY - Position.Y) - 3); if (diff > 0) Health -= diff; } LastCollisionY = Position.Y; } }
void BlockEntity_TerrainCollision(object sender, EntityTerrainCollisionEventArgs e) { if ((e.Block + Vector3.Up).Y < Chunk.Height) e.World.SetBlock(e.Block + Vector3.Up, (Block)Item.Id); e.World.OnDestroyEntity(this); }